检测是否安装了自制软件包

我即将编写一个shell脚本来检测系统中是否安装了多个自制软件包。 有没有办法使用brew命令来实现?

我尝试使用brew install <formula> --dry-run的退出代码。 但是,如果缺less这个包,就会构build这个包。

您可以使用

 brew ls --versions myformula 

输出相应公式的安装版本。 如果公式未安装,则输出将为空。

当使用最新版本的自制软件,你可以用brew update ,你可以运行这个(谢谢Slaven):

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

也就是说,检查是否存在该工具可能是一个好主意,而不仅仅是检查相应的自制软件包(例如,通过在$PATHsearch可执行文件)。 人们倾向于在实践中以相当大的方式安装工具,而自制软件就是其中之一。

关于什么?

 for pkg in macvim ngrep other needed packages; do if brew list -1 | grep -q "^${pkg}\$"; then echo "Package '$pkg' is installed" else echo "Package '$pkg' is not installed" fi done