解せぬ日記

雑な話をする

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 で直るらしいことが分かった。

bugs.archlinux.org

データベースのアップデートをしてもffmpeg4.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のバージョンによるエラーっぽい。ffmpeg4.0.2-6libx265.so=165-64 に依存しており、x265-2.9.1libx265.so=165-64 として提供している。依存関係からすると同時にインストールしてしまえば問題なさそうだったのでインストールした。 結果として、ffmpeglibx265.so=165-64 版の共有ライブラリに依存するようにインストールされていたので良さそうに見える。 ひとまずこれで全体のアップデートができるようになった。 すでに ffmpeg4.0.2-6 がデータベース側にも反映されてるので、同じように依存でアップデートできないぞという人は参考にしてほしい。