1. ホーム
  2. bash

[解決済み] homebrew パッケージがインストールされているかどうかを検出する

2022-05-16 04:31:49

質問

システムにいくつかの自作パッケージがインストールされているかどうかを検出するシェルスクリプトを書こうとしています。それを達成するために brew コマンドを使用する方法はありますか。

の終了コードを使ってみたのですが brew install <formula> --dry-run . しかし、これはパッケージが欠落している場合、ビルドします。

どのように解決するのですか?

以下の方法で解決できます。

brew ls --versions myformula

を実行すると、それぞれの計算式のインストールされているバージョンが出力されます。数式がインストールされていない場合、出力は空白になります。

最近のバージョンの homebrew を使っている場合、それは brew update で取得できる最近のバージョンの homebrew を使用している場合は、これを実行するだけです (Slaven に感謝)。

if brew ls --versions myformula > /dev/null; then
  # The package is installed
else
  # The package is not installed
fi

とはいえ、それぞれの自作パッケージのチェックだけでなく、ツールの存在を全く確認しないのも考えものでしょう(例えば、実行ファイルを $PATH ). 人々は、実際にはかなり多くの方法でツールをインストールする傾向があり、homebrew はそのうちの 1 つに過ぎません。