読者です 読者をやめる 読者になる 読者になる

Ubuntuで依存関係が壊れている時の対応

諸般の事情でとあるパッケージを入れようと頑張って居た際に

パッケージリストを読み込んでいます... 完了
依存関係ツリーを作成しています
状態情報を読み取っています... 完了
インストールすることができないパッケージがありました。おそらく、あり得
ない状況を要求したか、(不安定版ディストリビューションを使用しているの
であれば) 必要なパッケージがまだ作成されていなかったり Incoming から移
動されていないことが考えられます。
以下の情報がこの問題を解決するために役立つかもしれません:

以下のパッケージには満たせない依存関係があります:
 libgazebo5-dev : 依存: libgts-dev しかし、インストールされようとしていません
                  依存: libgdal-dev しかし、インストールされようとしていません
                  依存: libavformat-dev しかし、インストールされようとしていません
                  依存: libavcodec-dev しかし、インストールされようとしていません
                  依存: libswscale-dev しかし、インストールされようとしていません
                  依存: robot-player-dev しかし、インストールされようとしていません
                  依存: libgazebo5 (= 5.0.1+dfsg-1osrf2~trusty2) しかし、インストールされようとしていません
                  依存: gazebo5-plugin-base (= 5.0.1+dfsg-1osrf2~trusty2)
E: 問題を解決することができません。壊れた変更禁止パッケージがあります。
ERROR: the following rosdeps failed to install
  apt: command [sudo -H apt-get install -y libgazebo5-dev] failed

と、怒られる。

$ sudo apt-get update
$ sudo apt-get upgrade
$ sudo apt-get dist-upgrade

とか

$ sudo apt-cache gencaches

とか頑張るものの上手く行かない。

$ sudo apt-get -f install libgazebo5-dev

もダメ。

結果的には、aptitudeを利用して

$ sudo aptitude install libgazebo5-dev

すると、いくつか解決方法を提示してくれる。
”.”を押すと、他の解決法に移る。今回だと、特定のパッケージのバージョンが更新されていて(多分、別リポジトリを入れたりして更新した物なんだろうと思われる)結果的に依存解決に失敗していたらしく

この解決方法を受け入れますか? [Y/n/q/?] .
以下のアクションでこれらの依存関係の問題は解決されます:

      以下のパッケージを削除する:
1)      ffmpeg
2)      libpostproc52
3)      libswresample0

      以下のパッケージをインストールする:
4)      libavcodec-dev [6:9.11-2ubuntu2 (trusty)]
5)      libavformat-dev [6:9.11-2ubuntu2 (trusty)]
6)      libavutil-dev [6:9.11-2ubuntu2 (trusty)]
7)      libswscale-dev [6:9.11-2ubuntu2 (trusty)]

      以下のパッケージを現在のバージョンに一時固定する:
8)      libavcodec-extra-54 [インストールされていません]

      以下のパッケージをダウングレードする:
9)      libav-tools [7:1.2.6-1~trusty1 (now) -> 6:9.18-0ubuntu0.14.04.1 (trusty-security, trusty-updates)]
10)     libavcodec54 [7:1.2.6-1~trusty1 (now) -> 6:9.11-2ubuntu2 (trusty)]
11)     libavdevice53 [7:1.2.6-1~trusty1 (now) -> 6:9.11-2ubuntu2 (trusty)]
12)     libavfilter3 [7:1.2.6-1~trusty1 (now) -> 6:9.18-0ubuntu0.14.04.1 (trusty-security, trusty-updates)]
13)     libavformat54 [7:1.2.6-1~trusty1 (now) -> 6:9.11-2ubuntu2 (trusty)]
14)     libavresample1 [7:1.2.6-1~trusty1 (now) -> 6:9.18-0ubuntu0.14.04.1 (trusty-security, trusty-updates)]
15)     libavutil52 [7:1.2.6-1~trusty1 (now) -> 6:9.11-2ubuntu2 (trusty)]
16)     libswscale2 [7:1.2.6-1~trusty1 (now) -> 6:9.11-2ubuntu2 (trusty)]



この解決方法を受け入れますか? [Y/n/q/?]

コレを取り敢えずYしてから念のため update => upgrade しておいたら、取り敢えず成功するようになった。

良いのかドウかは不明。