gem可执行文件将无法运行

时间:2019-01-07 11:20:02

标签: ruby linux shell rubygems

即使我的机器上安装了ruby version2.3.0,从shell脚本运行gem install也会出错。

我正在尝试从sh文件安装gem。 sh文件代码如下:

    cat > /tmp/install_bandshell.sh <<EOF
    #!/bin/sh -e
    cd /tmp
    git clone git://github.com/concerto/bandshell.git
    cd bandshell
    gem build bandshell.gemspec
    gem install *.gem
    cd /
    rm -rf /tmp/bandshell
    EOF
    chmod +x /tmp/install_bandshell.sh
    /tmp/install_bandshell.sh

但是当我运行此sh文件时,会出现错误警告:您的PATH中没有/root/.gem/ruby/1.9.1/bin,gem可执行文件将无法运行。错误:安装bandshell-1.7.2.gem时出错:机架需要Ruby版本> = 2.2.2。

即使我安装了2.3.0 gem env输出

    RubyGems Environment:
      - RUBYGEMS VERSION: 2.5.1
      - RUBY VERSION: 2.3.0 (2015-12-25 patchlevel 0) [x86_64-linux]
      - INSTALLATION DIRECTORY: /usr/local/lib/ruby/gems/2.3.0/gems/
      - USER INSTALLATION DIRECTORY: /root/.gem/ruby/2.3.0
      - RUBY EXECUTABLE: /usr/local/bin/ruby
      - EXECUTABLE DIRECTORY: /usr/local/lib/ruby/gems/2.3.0/gems/bin
      - SPEC CACHE DIRECTORY: /root/.gem/specs
      - SYSTEM CONFIGURATION DIRECTORY: /usr/local/etc
      - RUBYGEMS PLATFORMS:
        - ruby
        - x86_64-linux
      - GEM PATHS:
         - /usr/local/lib/ruby/gems/2.3.0/gems/
         - /root/.gem/ruby/2.3.0
         - /usr/local/lib/ruby/gems/2.3.0
      - GEM CONFIGURATION:
         - :update_sources => true
         - :verbose => true
         - :backtrace => false
         - :bulk_threshold => 1000
      - REMOTE SOURCES:
         - https://rubygems.org/
      - SHELL PATH:
         - /usr/local/sbin
         - /usr/local/bin
         - /usr/sbin
         - /usr/bin
         - /sbin
         - /bin
         - /usr/local/lib/ruby/gems/2.3.0/gems

从终端上,如果我安装了该gem,它可以工作,但是从shell脚本给出了以上错误。请帮我解决一下这个。平台是Debian Wheezy。

1 个答案:

答案 0 :(得分:0)

我只回答关于邮件的主要问题。 (坦白说,我不知道您的sh文件是怎么回事,所以我不会解决它引起的任何其他问题。)

该消息是警告您,gem安装的所有可执行文件均不在您的路径中。如果gem没有安装任何可执行文件,那么您可以放心地忽略该消息。如果确实这样做(或者您不确定),则相应地修改路径。您如何执行此操作取决于您正巧使用哪种外壳。由于您已经用'linux'标记了这个问题,所以我猜您正在使用bash。如果是这样,请向您的~/.profile~/.bash_profile添加类似于以下内容的条目:

PATH="$PATH:/root/.gem/ruby/1.9.1/bin"

现在,在这一点上,我不得不怀疑-您正在使用ruby-1.9吗?您知道ruby 1.9已经过时了吧?实际上,考虑到您似乎正在使用Ruby 2.3.0,因此不太可能。我建议的是(至少暂时)如上所述调整您的PATH以避免警告。我怀疑您仍然有问题,但是您可以提出一个新问题而无需引述警告。

最后一点,请忽略有关将shebang更改为“#!/ bin / sh”以外的建议的建议; 非常不太可能帮助您。