自动化有输入的Ruby Gem安装
时间:2020-03-06 14:27:02 来源:igfitidea点击:
我正在尝试安装ibm_db gem,以便可以从Ruby访问DB2. 当我尝试时:
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脚本自动执行此安装,因此我想提前选择"红宝石"版本。
解决方案
试试这个:
sudo gem install --platform ruby ibm_db
请注意,我们可以使用以下命令获得有关install命令的帮助:
gem help install
更新:看来此选项仅适用于RubyGems 0.9.5或者更高版本。
@约翰·托普利
我已经尝试了gem help安装,而在帮助和实践中都无法使用--platform:
$ sudo gem install ibm_db --platform ruby ERROR: While executing gem ... (OptionParser::InvalidOption) invalid option: --platform
更新:Ubuntu仓库有0.9.4版本的rubygems,没有--platform选项。看来它可能是0.9.5中的一项新功能,但仍然没有在线文档,而且无论如何,它不能在Ubuntu(我需要使用它的平台)上运行。
我们可以使用"此处文档"。那是:
sudo gem install ibm_db <<heredoc 1 heredoc
\ <\ <\ SOMETHING和SOMETHING之间的内容将作为上一条命令的条目输入(有点像ruby自己的heredocument)。当然,仅此一项就是选择" ibm_db 0.10.0(ruby)"平台。
希望足够了。
试试这个,我认为它虽然只适用于Bash
sudo gem install ibm_db < <(echo 1)
Rubygems 1.0和更高版本会自动检测我们正在运行的平台,因此不会提出该问题。我们可以将自己的宝石更新到最新的吗?
$ sudo gem update --system
更新后,如果我们使用的是Windows,则被警告;我们可能会遇到此问题。
另一个选择是下载.gem文件并按如下方式手动安装:
sudo gem install path/to/ibm_db-0.10.0.gem
这个特殊的宝石在rubyforge。