我正在用bash编写脚本,以配置一些安装了某些Brew公式的MacOS计算机。我首先要检查是否已安装该公式的特定版本。如果未安装,脚本将安装它。
问题是我不知道该如何检查。例如,brew ls --versions openssl
返回所有已安装的版本。但是我想检查一个特定的版本,有点像gems gem list -i cocoapods -v 1.3.1
。这样做的原因是某些项目需要安装特定的版本(例如openssl)。
有可能这样做吗?请注意,有一些冲泡公式需要检查,因此我想使其尽可能轻巧:)
我有这样的想法(当然要正确检查):
if ! NOT_INSTALLED; then #check to see if ruby -v 2.2.2 has been installed
brew install ruby -v 2.2.2
else
echo "Skipping install ruby..."
fi
提前致谢!
没有内置的Homebrew命令来检查是否安装了版本,但是使用某些Shell脚本非常简单。例如,
brew list --versions | grep qt | cut -d " " -f 2
列出我的计算机上安装的所有Qt版本,并打印:
5.10.0_1
5.7.1
您可以进一步优化它以查看是否安装了特定版本:
brew list --versions | grep "qt.* 5.7"
将打印任何版本的Qt 5.7。
一个简单的shell函数将搜索特定公式的特定版本,如下所示:
formula_installed() {
[ "$(brew list --versions | grep "$1.* $2")" ]
return $?
}
用法:
$ formula_installed qt 5.7
$ echo $?
1
$ formula_installed qt 8
$ echo $?
0
有关通话.*
中正则表达式的注释grep
。最初,homebrew/versions
水龙头中维护着多个版本的公式。弃用此方法,是为了保留较旧的版本,homebrew/core
但要附加@<version>
其名称。(例如,您可以通过执行安装Qt 5.5版brew install [email protected]
。)这使得安装多个(尤其是较旧的)公式版本更加容易。
本文收集自互联网,转载请注明来源。
如有侵权,请联系 [email protected] 删除。
我来说两句