Як перерахувати всі версії самоцвіту, доступні на віддаленому сайті?


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
Joshua Cheek

5
зауважте, що ви можете передавати інші варіанти, тобто. щоб отримати останні попередні випуски пасажира phusion, які ви хочете: gem list -ra --pre passenger(-ra == --remote
Mirek Rusin

5
@JoshuaCheek зауважте, що деякі оболонки, як, наприклад, zshмають більш вдосконалений синтаксичний розбір і можуть зафіксувати заданий таким чином регулярний вираз. Щоб бути більш безпечним (якщо ставити щось подібне в сценарій чи README) - це поставити його в рядок, щоб ми переконалися, що ми передаємо його 1-1, тобто gem list '^rhc$'тощо.
mgol

1
@m_gol трапилось зачитувати коментарі, як мій zshзробив це +1 для вашої допомоги!
Джессі Вітхем

використовувати --prereleaseдля перегляду бета-версій
akostadinov

32

Відповідно до посібника RubyGem, ви повинні використовувати 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.

Щоб зробити це повторно використаним, ви можете написати деякі функції (вибачте за мої обмежені навички баш):

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.