如何列出在远程站点上可用的所有gem版本?

我试图找出指定的gem的所有可用的远程版本。

我试过使用:

gem list rhc --remote 

但是它显示:

 *** REMOTE GEMS *** rhc (0.84.15) rhcp (0.2.18) rhcp_shell (0.2.12) 

有任何想法吗?

那么,这比我想象的要容易得多(呃,不是真的,让我们这么容易):

 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) 

根据RubyGem的指南,你应该使用search关键字。 所以命令可以是:

gem search rhc --all

如果你想确切的名字使用:

gem search ^rhc$ --all

如果您想包含预发布版本,请使用--pre

gem search ^rhc$ --pre

如果你使用zsh加引号:

gem search '^rhc$' --all

要扩展@ 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. 

尝试:

 gem list [STRING] [options] 

例如:

 gem list rhc -r 

或者尝试:

 gem list -r rhc 

文档和提供的示例似乎相互矛盾 – 请同时尝试


请参阅文档:

http://docs.rubygems.org/read/chapter/10#page34