Автоматизируйте установку Ruby Gem, которая имеет входные данные

StackOverflow https://stackoverflow.com/questions/103918

Вопрос

Я пытаюсь установить драгоценный камень 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".

Это было полезно?

Решение

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

sudo gem install ibm_db <<heredoc
  1
heredoc

Что находится между \<\<\SOMETHING и ЧТО-ТО вводится как запись в предыдущую команду (что-то вроде собственных heredocuments ruby).Единственным, конечно, является выбор платформы "ibm_db 0.10.0 (ruby)".

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

Другие советы

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

sudo gem install --platform ruby ibm_db

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

gem help install

Обновить: Похоже, эта опция работает только для RubyGems 0.9.5 или выше.

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

sudo gem install ibm_db < <(echo 1)

@Джон Топли

Я уже пробовал установить 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, которая является платформой, на которой мне нужно, чтобы он работал.

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

$ sudo gem update --system

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

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

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

Этот конкретный драгоценный камень находился в рубиновый горн.

Лицензировано под: CC-BY-SA с атрибуция
Не связан с StackOverflow
scroll top