FreeBSD上で rtmpdump と ffmpeg を使って、Radikoを自動録音し、Podcast に変換して iTunesで利用していますが、パッケージメンテナンスがが入ると、その直後にしばしば録音出来ないというトラブルが発生します。
その対策として、rtmpdump と ffmpeg はpkgコマンドが勝手にバージョンアップ出来ないようにlockを掛けているのですが、油断して大量アップデートをそのまま上げてしまうと、rtmpdump や ffmpegが呼ぶライブラリが更新されてしまい、Radikoを録音出来なくなったりします。
今回も気が付くと大量のportsパッケージアップデートが発生しており、重要なファイルはロックしてあるので大丈夫だろうと、細かい確認をせずにパッケージメンテナンスを行ったところ、翌日の Radiko 自動録音が失敗。
今回は、libvpx.so.5 が無いとメッセージが表示されます。
大量にアップデートしたログの中に、
pkg: libvpx upgraded: 1.7.0_4 -> 1.8.0
がありました。やっちまったよ〜。
バージョンロックしてある ffmpegが必要とするライブラリを上げてしまったようです。新しくなったライブラリを、旧ファイル名にシンボリックリンクするという手もあるのですが、シンボリックリンクで回避しようとすると、シンボリックリンクを一つ作ると別のライブラリがエラーになるというエンドレスになる可能性があります。
やむを得ず、問題のの元である ffmpeg のバージョンロックを解除して ffmpeg をffmpeg4.0.2_8,1 を4.1.3,1 に上げてみて、core dump したら手動でビルドし直そうと決めました。
pkg upgrade を行ってみたところ、その他のパッケージと一緒にアップデートされました。
pkg: ffmpeg upgraded: 4.0.2_8,1 -> 4.1.3,1
テストしてみたところ、昨年原因究明に苦労した core dump が発生せず、無事にRadikoのフォーマット変換が可能でした。ffmpeg もバージョンアップが進み、問題が解決していたようです。
しかし、毎日使用するコマンドなので不要なアップデートは避けるべき。
今回も関連パッケージまとめてロックしておくことにしました。