Проверка, установлен ли рубиновый драгоценный камень из сценария удара

извините я оставил бы это как комментарий, но я не могу: если бы Вам не нужна версия 5.3.3, и версия 5.3.1 прекрасна слишком затем, я предложил бы, чтобы Вы придерживались XAMPP, который делает всю работу установки для Вас

14
задан 23 May 2012 в 00:52
3 ответа

список гемов <имя> -i вернет строку истина , если гем установлен, и ложь в противном случае. Кроме того, коды возврата соответствуют вашим ожиданиям.

Для получения дополнительной информации см. список справки по драгоценным камням .


Правка: @Riateche правильно заметил, что это может давать ложные срабатывания, если вы ищете имя драгоценного камня, которое является подстрокой установленного другим способом. Чтобы избежать этого, используйте синтаксис регулярного выражения:

gem list '^<name>$' -i

(Пример: список драгоценных камней '^ mini $' -i ).

26
ответ дан 2 December 2019 в 21:01

Похоже, что команда gem spec завершится с ошибкой, если именованный гем не установлен. Итак:

if ! gem spec <name> > /dev/null 2>&1; then
  echo "Gem <name> is not installed!"
fi

Я не знаю, является ли это каноническим способом решения этой проблемы, но он работает.

6
ответ дан 2 December 2019 в 21:01

Вы также можете использовать подкоманду запроса к команде gem. Отрывок использования

$ gem query -i -n bundler 
true
также будет искать конкретные версии, используя переключатель -v.

$ gem query -i -n bundler -v 1.6.2.1
false
3
ответ дан 2 December 2019 в 21:01

Теги

Похожие вопросы