Автоматизировать установку Ruby Gem, которая имеет вход - PullRequest
1 голос
/ 19 сентября 2008

Я пытаюсь установить гем ibm_db, чтобы получить доступ к DB2 из Ruby. Когда я пытаюсь:

sudo gem install ibm_db

Я получаю следующий запрос на уточнение:

Select which gem to install for your platform (i486-linux)
 1. ibm_db 0.10.0 (ruby)
 2. ibm_db 0.10.0 (mswin32)
 3. ibm_db 0.9.5 (mswin32)
 4. ibm_db 0.9.5 (ruby)
 5. Skip this gem
 6. Cancel installation

Я всегда собираюсь установить версию для Linux (которую я предполагаю, что это "ruby" версия), так есть ли способ выбрать, какую из них я установлю прямо из команды gem install?

Причина, по которой это проблема, заключается в том, что мне нужно автоматизировать эту установку с помощью скрипта bash, поэтому я хотел бы выбрать, что я хочу, чтобы версия "ruby" была заблаговременно.

Ответы [ 6 ]

2 голосов
/ 19 сентября 2008

Вы можете использовать «здесь документ». То есть:

sudo gem install ibm_db <<heredoc
  1
heredoc

То, что находится между \ <\ <\ SOMETHING и SOMETHING, вводится как вход в предыдущую команду (что-то вроде собственных наследственных документов ruby). Конечно, одна там - это выбор платформы "ibm_db 0.10.0 (ruby)". </p>

Надеюсь, этого достаточно.

1 голос
/ 19 сентября 2008

Попробуйте это:

sudo gem install --platform ruby ibm_db

Обратите внимание, что вы можете получить справку по команде установки, используя:

gem help install

ОБНОВЛЕНИЕ: Похоже, эта опция работает только для RubyGems 0.9.5 или выше.

0 голосов
/ 19 сентября 2008

Другой вариант - загрузить файл .gem и установить его вручную следующим образом:

sudo gem install path/to/ibm_db-0.10.0.gem

Этот конкретный камень был на rubyforge .

0 голосов
/ 19 сентября 2008

Версии Rubygems от 1.0 и выше автоматически определяют платформу, на которой вы работаете, и, таким образом, не задают этот вопрос. Можете ли вы обновить свои драгоценные камни до последней версии?

$ sudo gem update --system

Будьте внимательны, если вы используете Windows после обновления; вы можете столкнуться с этой проблемой .

0 голосов
/ 19 сентября 2008

Попробуйте, я думаю, что это работает только на Bash, хотя

sudo gem install ibm_db < <(echo 1)
0 голосов
/ 19 сентября 2008

@ Джон Топли

Я уже пробовал установить gem help, и --platform не подходит, как в справке, так и на практике:

$ sudo gem install ibm_db --platform ruby
ERROR:  While executing gem ... (OptionParser::InvalidOption)
    invalid option: --platform

ОБНОВЛЕНИЕ : Репозитории Ubuntu имеют версию rubygems 0.9.4, которая не имеет опции --platform. Похоже, что это может быть новая функция в 0.9.5 , но онлайн-документации для него по-прежнему нет, и, тем не менее, она не будет работать на Ubuntu - платформе, на которой мне нужно работать.

...