Arch Linuxでffmpegの依存解決に失敗する
今日、ArchLinuxのパッケージをいつものようにアップデートしようとしてハマった。解決策がネット上に見当たらなかったので書いておく。
遭遇したエラーは以下のような感じだった。
$ yaourt -Syua [sudo] password for terut: :: Synchronizing package databases... core is up to date extra is up to date community is up to date multilib is up to date archlinuxfr is up to date error: failed to prepare transaction (could not satisfy dependencies) :: Starting full system upgrade... resolving dependencies... looking for conflicting packages... error: failed to prepare transaction (could not satisfy dependencies) :: unable to satisfy dependency 'libx265.so=160-64' required by ffmpeg No database errors have been found!
どうやら依存が上手く解決できないように見える。
ffmpegのバージョンは 4.0.2-3
が入っていて、ffmpegのパッケージのバグページを見てみると 4.0.2-6
で直るらしいことが分かった。
データベースのアップデートをしてもffmpegの 4.0.2-4
しかなかったので、仕方なくffmpegのパッケージサイトからミラー経由でダウンロードして直接入れた。
Arch Linux - ffmpeg 1:4.0.2-6 (x86_64)
右上の [Download From Mirror] からダウンロードできる。 ダウンロードしたら直接インストールしてしまう。
$ yaourt -U ~/Downloads/ffmpeg-1_4.0.2-6-x86_64.pkg.tar.xz resolving dependencies... looking for conflicting packages... error: failed to prepare transaction (could not satisfy dependencies) :: installing x265 (2.9-1) breaks dependency 'libx265.so=160-64' required by ffm peg loading packages... resolving dependencies... looking for conflicting packages... Packages (2) x265-2.9-1 ffmpeg-1:4.0.2-6 ...
エラーが出ているが、これは現在のffmpegのバージョンによるエラーっぽい。ffmpegの 4.0.2-6
は libx265.so=165-64
に依存しており、x265-2.9.1
は libx265.so=165-64
として提供している。依存関係からすると同時にインストールしてしまえば問題なさそうだったのでインストールした。
結果として、ffmpegも libx265.so=165-64
版の共有ライブラリに依存するようにインストールされていたので良さそうに見える。
ひとまずこれで全体のアップデートができるようになった。
すでに ffmpeg の 4.0.2-6
がデータベース側にも反映されてるので、同じように依存でアップデートできないぞという人は参考にしてほしい。