假设我有一个组件foo
,其版本有2.1
、2.2
和2.2.1
可用3.0
。假设我已安装版本2.1
。我该如何告诉 brew 获取行中的最新版本2.x
而不是 3.0?
有没有办法列出所有可用的版本?
有没有办法限制升级到最新版本2.x
?
答案1
最新版本的 homebrew 给出了错误Error: Unknown command: versions
。这是因为versions
已被 homebrew 淘汰。
相反,使用brew search elasticsearch
。这将提供可用的 elasticsearch 版本。
例如。elasticsearch ✔ [email protected]
然后运行brew install [email protected]
您可以通过以下方式检查最终的 elasticsearch 版本elasticsearch --version
答案2
有没有办法限制升级到最新版本的 2.x?
我不相信brew
有内置方法来指定最新的2.x
。您必须指定。您可以使用并返回它来编写一个简单的 bash 命令。brew install [email protected]
sort
grep
有没有办法列出所有可用的版本?
为了获得没有多余噪音的准确结果,您可以使用带有 的正则表达式brew search
。它只返回foo
和foo@___
。如果您要搜索像r
或git
这样的简短包名称,这将特别有用,否则会返回很多噪音。
$ brew search '/^foo$|^foo@/'
注意,brew search
它似乎支持扩展正则表达式,所以我无法使用下面更高效的正则表达式。当然,您可以使用 grep 管道来实现相同的目的:
$ brew search foo | grep -E '^foo(@.*)?$'
答案3
以下是我得出的结论(我以此elasticsearch
为例):
$ brew versions elasticsearch
1.3.2 git checkout 475debf /usr/local/Library/Formula/elasticsearch.rb
...
1.1.0 git checkout c7f653b /usr/local/Library/Formula/elasticsearch.rb
1.0.1 git checkout 9b8103f /usr/local/Library/Formula/elasticsearch.rb
1.0.0 git checkout 1fb5dda /usr/local/Library/Formula/elasticsearch.rb
0.90.11 git checkout 91c60b9 /usr/local/Library/Formula/elasticsearch.rb
0.90.10 git checkout b155496 /usr/local/Library/Formula/elasticsearch.rb
0.90.9 git checkout 28f45d0 /usr/local/Library/Formula/elasticsearch.rb
...