代码之家  ›  专栏  ›  技术社区  ›  Mike Stone

自动化有输入的Ruby Gem安装

  •  1
  • Mike Stone  · 技术社区  · 16 年前

    我正在尝试安装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脚本自动安装,所以我想提前选择我想要的“ruby”版本。

    6 回复  |  直到 16 年前
        1
  •  2
  •   paradoja    16 年前

    您可以使用“此处文档”。即:

    sudo gem install ibm_db <<heredoc
      1
    heredoc
    

    <之间是什么\<\SOMETHING and SOMETHING作为前一个命令的条目被输入(有点像ruby自己的heredocuments)。当然,只有1是选择“ibm_db 0.10.0(ruby)”平台。

    希望这已经足够了。

        2
  •  1
  •   John Topley    16 年前

    试试这个:

    sudo gem install --platform ruby ibm_db
    

    请注意,您可以使用以下命令获取安装命令的帮助:

    gem help install
    

    更新: 看起来此选项仅适用于RubyGems 0.9.5或更高版本。

        3
  •  0
  •   Josti    16 年前

    试试这个,我认为它只适用于Bash

    sudo gem install ibm_db < <(echo 1)
    
        4
  •  0
  •   Community CDub    8 年前

    @ John Topley

    我已经尝试过gem help install,无论是在帮助中还是在实践中,platform都不是一个选项:

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

    更新 :Ubuntu存储库有0.9.4版本的rubygems,它没有--platform选项。看起来可能是 a new feature in 0.9.5 ,但仍然没有关于它的在线文档,而且无论如何,它在Ubuntu上都无法运行,而Ubuntu是我需要它运行的平台。

        5
  •  0
  •   Community CDub    8 年前

    1.0及以上版本的Rubygems会自动检测您正在运行的平台,因此不会问这个问题。你能将你的宝石更新到最新吗?

    $ sudo gem update --system
    

    更新后,如果您使用的是Windows,请注意;你可能会遇到 this issue .

        6
  •  0
  •   Mike Stone    16 年前

    另一种选择是下载.gem文件并手动安装:

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

    这颗特殊的宝石位于 rubyforge .