入力のある Ruby Gem のインストールを自動化する
-
01-07-2019 - |
質問
Ruby から DB2 にアクセスできるように、ibm_db gem をインストールしようとしています。試してみると:
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 と SOMETHING の間にあるものは、前のコマンドへのエントリとして入力されます (Ruby 自身のヒアドキュメントに似ています)。もちろん、そこにある 1 だけは、「ibm_db 0.10.0 (ruby)」プラットフォームの選択です。
それで十分だと思います。
他のヒント
これを試して:
sudo gem install --platform ruby ibm_db
以下を使用すると、インストール コマンドのヘルプが表示されることに注意してください。
gem help install
アップデート: このオプションは RubyGems 0.9.5 以降でのみ機能するようです。
これを試してみてください。Bash でのみ機能すると思いますが、
sudo gem install ibm_db < <(echo 1)
すでに gem help install を試しましたが、ヘルプと実際の両方で --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 以降のバージョンでは、実行しているプラットフォームが自動的に検出されるため、そのような質問はされません。gemを最新のものに更新できますか?
$ sudo gem update --system
アップデート後に Windows を使用している場合は注意してください。遭遇するかもしれない この問題.
別のオプションは、.gem ファイルをダウンロードして手動でインストールすることです。
sudo gem install path/to/ibm_db-0.10.0.gem
この特別な宝石は次の場所にありました ルビーフォージ.