Ответы:
Что ж, это было проще, чем я думал (ну, не совсем, скажем так, так просто, как должно быть):
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)
gem list -ra --pre passenger
(-ra == --remote --all)
zsh
имеют более продвинутый синтаксический анализ и могут перехватывать регулярное выражение, указанное таким образом. Чтобы быть более безопасным (если поместить что-то подобное в скрипт или README), нужно поместить его в строку так, чтобы мы были уверены, что передаем его 1-1 и т. gem list '^rhc$'
Д.
zsh
сделал это +1 за вашу помощь!
--prerelease
для просмотра бета-версий
Согласно RubyGem's Guide вы должны использовать search
ключевое слово. Итак, команда могла быть такой:
gem search rhc --all
Если вы хотите использовать точное имя:
gem search ^rhc$ --all
Если вы хотите включить предварительные версии, используйте --pre
gem search ^rhc$ --pre
А если вы используете zsh
кавычки:
gem search '^rhc$' --all
--prerelease
для просмотра бета-версий
Чтобы расширить ответ @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
( документация и приведенный пример, похоже, противоречат друг другу - попробуйте оба )
Смотрите документацию:
gem list ^rhc$
а флаги «--remote» и «--all» можно сократить и объединить дляgem list ^rhc$ -ra