我正在尝试查找指定gem的所有远程可用版本。
我尝试使用:
gem list rhc --remote
但它显示:
*** REMOTE GEMS ***
rhc (0.84.15)
rhcp (0.2.18)
rhcp_shell (0.2.12)
有什么想法吗?
答案 0 :(得分:187)
嗯,这比我想象的要容易得多(好吧,不是真的,让我们说它应该是那么容易):
gem list rhc --remote --all
返回:
*** REMOTE GEMS ***
rhc (0.84.15, 0.84.13, 0.83.9, 0.82.18, 0.81.14, 0.80.5, 0.79.5, 0.77.8, 0.75.9, 0.74.6, 0.74.5, 0.73.14, 0.72.29, 0.71.2, 0.69.6, 0.69.3, 0.68.5)
rhcp (0.2.18, 0.2.17, 0.2.16, 0.2.15, 0.2.14, 0.1.9, 0.1.8, 0.1.7, 0.1.6, 0.1.5, 0.1.4, 0.1.3, 0.1.2)
rhcp_shell (0.2.12, 0.2.11, 0.0.9, 0.0.7, 0.0.6, 0.0.5, 0.0.4, 0.0.3, 0.0.2, 0.0.1)
答案 1 :(得分:27)
根据RubyGem's Guide,您应该使用search
关键字。所以命令可以是:
gem search rhc --all
如果您想使用确切名称:
gem search ^rhc$ --all
如果要包含预发布版本,请使用--pre
gem search ^rhc$ --pre
如果您使用zsh
添加引号:
gem search '^rhc$' --all
答案 2 :(得分:8)
要扩展@ eyalev的答案,如果你想要每行一个版本的列表,这里是一个单行:
gem search '^rspec$' --all \
| grep -o '\((.*)\)$' \
| tr -d '() ' \
| tr ',' "\n" \
| sort
0.0.10
0.1.0
0.1.1
# etc.
为了使这个可以重复使用,你可以编写一些函数(原谅我有限的bash技能):
function extract_gem_versions() {
echo "$1" \
| grep -o '\((.*)\)$' \
| tr -d '() ' \
| tr ',' "\n";
}
function gem_versions() {
local gem_name="$1";
local pattern="^${gem_name}$";
local vers_str="$(gem search ${pattern} --all)";
extract_gem_versions "$vers_str";
}
gem_versions rspec | sort
0.0.10
0.1.0
0.1.1
# etc.
答案 3 :(得分:-2)
尝试:
gem list [STRING] [options]
例如:
gem list rhc -r
或尝试:
gem list -r rhc
(文档,提供的示例似乎相互矛盾 - 尝试两者)
参见文档: