即使我的机器上安装了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。
答案 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”以外的建议的建议; 非常不太可能帮助您。