Как мне перечислить все версии драгоценного камня, доступные на удаленном сайте?


133

Я пытаюсь узнать все удаленно доступные версии указанного драгоценного камня.

Я пытался с помощью:

gem list rhc --remote

Но это показывает:

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

Любые идеи?

Ответы:


205

Что ж, это было проще, чем я думал (ну, не совсем, скажем так, так просто, как должно быть):

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)

52
Также обратите внимание, что «rhc» - это регулярное выражение, поэтому, если вы хотите посмотреть только на него, вы можете выполнить поиск, gem list ^rhc$а флаги «--remote» и «--all» можно сократить и объединить дляgem list ^rhc$ -ra
Джошуа Чик,

5
обратите внимание, что вы можете передать другие параметры, т.е. чтобы получить последние предварительные версии phusion пассажира, вам нужно: gem list -ra --pre passenger(-ra == --remote --all)
Мирек Русин

5
@JoshuaCheek обратите внимание, что некоторые оболочки, например, zshимеют более продвинутый синтаксический анализ и могут перехватывать регулярное выражение, указанное таким образом. Чтобы быть более безопасным (если поместить что-то подобное в скрипт или README), нужно поместить его в строку так, чтобы мы были уверены, что передаем его 1-1 и т. gem list '^rhc$'Д.
mgol

1
@m_gol случайно читал комментарии, поскольку мой zshсделал это +1 за вашу помощь!
Джесси Уизэм

используйте --prereleaseдля просмотра бета-версий
akostadinov

32

Согласно RubyGem's Guide вы должны использовать searchключевое слово. Итак, команда могла быть такой:

gem search rhc --all

Если вы хотите использовать точное имя:

gem search ^rhc$ --all

Если вы хотите включить предварительные версии, используйте --pre

gem search ^rhc$ --pre

А если вы используете zshкавычки:

gem search '^rhc$' --all


4
используйте --prereleaseдля просмотра бета-версий
akostadinov

9

Чтобы расширить ответ @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.

-2

Пытаться:

gem list [STRING] [options]

Например:

gem list rhc -r

Или попробуйте:

gem list -r rhc

( документация и приведенный пример, похоже, противоречат друг другу - попробуйте оба )


Смотрите документацию:

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


1
Это не список всех версий
Адам Теген
Используя наш сайт, вы подтверждаете, что прочитали и поняли нашу Политику в отношении файлов cookie и Политику конфиденциальности.
Licensed under cc by-sa 3.0 with attribution required.