Homebrew で依存関係が壊れてしまった場合の対処

おそらく私の操作がまずかったのだと思いますが、 Homebrew で本来維持されるはずの依存関係が壊れてしまいました。色々試してみたのですが、ようやくうまくいく方法がありましたので、記載しておきます。多分に自分自身のためのメモですが。

使用頻度の高い ffmpeg が使えなくなった

ドライブレコーダーの画像を記録しているんですね。細切れになっている画像をつなげたり、リアとフロントの画像をピクチャーインピクチャーにしたりしています。その時に使っているのが ffmpeg というソフトです。様々な操作が可能な高機能コマンドです。

で、このコマンドが使用できなくなりました。私の操作が悪かったのだろうと思うのですが、必要ないと思っていたコマンドを削除してしまったんですね。通常はそれでも Homebrew が依存関係を確認してくれるのですが、何かおかしなことをしてしまったようです。

ffmpeg を起動しようとすると、ライブラリーが読み込めないというエラーが出て止まってしまいます。多くの依存関係が関連しますので、全くお手上げ状態になってしまいました。

依存関係をいったん全て削除したい

かなり荒っぽい方法ですが、 Homebrew のコマンドを使って依存関係にあるパッケージをいったん削除。その後 ffmpeg を削除して、更に不足しているパッケージを再インストール。更に更に ffmpeg を再インストールしてみようということにしました。

とはいうものの、どうすればいいのかわかるほど知識を持ち合わせていません。そんなときはググります。で、見つけたのが「 macos — Homebrew パッケージを、そのすべての依存関係も含めてアンインストール / 削除します」というページ。ここを参考にして次のような操作を実行しました。

brew deps ffmpeg | xargs brew remove --ignore-dependencies
brew remove ffmepg
brew missing | cut -d: -f2 | sort | uniq | xargs brew install
brew cleanup
brew install ffmpeg
  • 1 行目で ffmpeg の依存関係にあるパッケージをいったん削除します。
  • 2 行目では ffmpeg 自体を削除します。
  • 3 行目でその時点でインストールされている他のパッケージに不足しているものを再インストールします。
  • 4 行目はクリーンナップですね。
  • 5 行目で ffmpeg を再度インストールしています。

どのパッケージ ( フォーミュラといいます ) がおかしくなっているのかはっきりしている場合は、こんなまどろっこしいことをせずに、そのパッケージをインストールすればいいわけですが、今回はわかりません。なので、本来依存関係にあるパッケージをいったん削除して、再インストールにつなげたわけです。幸いこれでうまくいきました。

実は苦労したのです

サクッと関連ページを見つけて、すんなり問題を解決できたかのように書きましたが、とんでもない。約一日あっちのページ、コッチのサイトを見て回りました。本来、依存関係が壊れてしまっても、いったんパッケージを削除して再インストールすることで回復できるはずなのですが、うまくいきませんでした。

先ほど引用したページも 2011 年作成日付になっています。その後加筆されていますが、 2018 年あたりで止まっています。本当に動くのか、より傷口を広げてしまうのではないかと不安でした。今回はうまくいきましたが、うまくいく保証はありません。実行するのは少々 ( いや、かなり ) 不安でした。


2 日分たまっていたドライブレコーダーの処理も問題なく終了しました。これで一安心です。

投稿者プロフィール

kaizawa
kaizawaブロガー
新潟県在住。1964年生まれ、東京オリンピックの年ですね。
突然燃え上がったり、鎮火したり興味の波が激しいので注意が必要です。

コメントを残す

メールアドレスが公開されることはありません。 が付いている欄は必須項目です

CAPTCHA


Mac

前の記事

WebDAV は不安定?