How do I list all versions of a gem available at a remote site?

会有一股神秘感。 提交于 2019-11-28 15:34:34

问题


I'm trying to find out all the remotely available versions of a specified gem.

I tried using:

gem list rhc --remote

But it shows:

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

Any ideas?


回答1:


Well, it was easier than I thought (well, not really, let's say as easy as it should be):

gem list rhc --remote --all

Which returns:

*** 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)



回答2:


According to RubyGem's Guide you should use the search keyword. So the command could be:

gem search rhc --all

If you want the exact name use:

gem search ^rhc$ --all

If you want to include prerelease versions use --pre

gem search ^rhc$ --pre

And if you're using zsh add quotes:

gem search '^rhc$' --all




回答3:


To extend @eyalev's answer, if you want a list of one version per line, here's a one-liner:

gem search '^rspec$' --all \
  | grep -o '\((.*)\)$' \
  | tr -d '() ' \
  | tr ',' "\n" \ 
  | sort
0.0.10
0.1.0
0.1.1
# etc.

To make this a bit more re-usable, you could write some functions (pardon my limited bash skills):

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.



回答4:


Try:

gem list [STRING] [options]

For example:

gem list rhc -r

Or try:

gem list -r rhc

(the documentation, and the example provided seem to contradict each other - try both)


See the documentation:

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



来源:https://stackoverflow.com/questions/9146012/how-do-i-list-all-versions-of-a-gem-available-at-a-remote-site

标签
易学教程内所有资源均来自网络或用户发布的内容,如有违反法律规定的内容欢迎反馈
该文章没有解决你所遇到的问题?点击提问,说说你的问题,让更多的人一起探讨吧!