Linuxを日常的に使う実験ブログ

【Arch Linux】pacman4.2へのバージョンアップによる依存関係トラブル回避方法

 2015-01-02

 Arch Linux

あけましておめでとうございます。今回のテーマは『pacman4.2へのバージョンアップによる依存関係トラブル回避方法』です。新しい年の始まりということもあり早速Arch Linuxのアップデートをしたところ依存性の問題が発生していました。同じ状況になった方に参考になればと記事にしました。 [adsense02] 【目次】 システムアップデートするとエラーが出る 原因はpacmanのバージョン 3つの解決策

システムアップデートするとエラーが出る

以下コマンドでpacmanを使って以下コマンドでシステムをアップデートするとエラーメッセージが出ます。

$ sudo pacman -Syu

[エラーメッセージ] [bash] 依存関係を解決しています… 警告: 依存サイクルが検出されました: 警告: harfbuzz は依存パッケージ freetype2 の前にインストールされます 相互衝突をチェックしています… エラー: 処理の準備に失敗しました (依存関係を解決できませんでした) :: package-query: pacman<4.2 を必要としています [/bash]

原因はpacmanのバージョン

エラーメッセージに書かれている通り原因はpacmanのバージョンです。pacman-queryが必要とするpacmanのバージョンが4.2未満にもかかわらず公式リポジトリのpacmanは4.2にアップデートされました。このバージョンの食い違いが依存性を解決できない原因となっています。ところでこのpackage-queryとはyaourtから必要とされているパッケージです。package-queryの情報は以下のコマンドで調べられます。

$ pacman -Qm package-query

名前      : package-query バージョン   : 1.4-1 説明      : Query ALPM and AUR アーキテクチャ : i686 URL : https://github.com/archlinuxfr/package-query/ ライセンス   : GPL グループ    : なし Provides : なし 依存パッケージ : pacman>=4.1 pacman<4.2 curl yajl>=2.0 提案パッケージ : なし Required By : yaourt Optional For : なし 衝突パッケージ : なし 置換パッケージ : なし インストール容量: 82.00 KiB

3つの解決策

原因が分かったところで現実的と思われる解決案を3つ挙げてみました。 —2015-01-07追記— AURにてpackage-queryが更新されdependenceが4.1<=pacman<4.3となりましたので、依存性は解消されました。yaourt -SyuaでAURパッケージを含めて更新すれば問題なくシステム更新出来ると思います。もしダメな場合はyaourtとpackage-queryを削除してシステムアップデート後に再インストールしてみて下さい。

解決策1 yaourtとpackage-queryを削除する

大した解決策になっていないと思うかも知れませんが、そもそもyaourtはサードパーティから提供されているツールなので、公式リポジトリのパッケージに干渉して不具合を起こす場合は削除するというのも選択肢の1つだと思います。 yaourtに頼らずともWebブラウザを用いてAURパッケージの活用は十分出来ます。詳細はコチラをご覧ください。 yaourtとpackage-queryを削除してシステムをアップデートする場合は以下のコマンドを実行します。

$ sudo pacman -Rs yaourt package-query $ sudo pacman -Syu

解決策2 yaourtの代替として他のAURヘルパーを使う

arch wikiにはAURビルドヘルパーの一覧があります。Webブラウザでパッケージをダウンロードしてきてビルドするのが面倒な方はyaourtに代わるAURヘルパーを使ってみるのも手だと思います。現在でもメンテナンスされていて有用なツールをピックアップしておきます。 Packer yaourtの基本機能は備えながらよりシンプルな作りになっています。個人的にはイチオシのyaourt代替パッケージャーだと思います。 Aura Haskellで書かれたArch Linuxのパッケージマネージャーで公式パッケージとAURパッケージを管理できます。 Aurget AUR パッケージの検索・ダウンロード・ビルド・インストール・アップデートをクイックに行います。 Cower AURパッケージの検索・ダウンロードエージェントです Pbfetch AUR 機能を追加した pacman ラッパーとしても使えるスクリプトです。

解決策3 package-queryのアップデートを待つ

積極的な手段ではありませんが、メンテナによってpackage-queryの必要とするpacmanのバージョンが修正されるまで待つという手もあります。Arch Linuxの公式ページでもシステムアップデートはシステムを不安定にする可能性があるためあまり頻繁に行うことを推奨していません。

最後に

公式パッケージとAURパッケージの依存性の問題は常につきまとう問題ですね。公式パッケージのアップデートの速度にAURパッケージのメンテナナンスが間に合わないと今回のようなトラブルに見舞われます。yaourtのバージョンアップが早く来ると良いですね。 [adsense]