我有一个简单的脚本,包含我刚上传到服务器的2个文件。
当我跑步时:
bundle install
它安装了宝石。
当我跑步时:
ruby hello.rb
我收到错误:
/usr/lib/ruby/1.9.1/rubygems/custom_require.rb:36:in `require': cannot load such file -- HTTPClient (LoadError)
from /usr/lib/ruby/1.9.1/rubygems/custom_require.rb:36:in `require'
我再次为每个宝石运行gem install,仍然是同样的错误。
gem list
命令也正确列出了宝石。
问题是什么?
我已经运行了这个:
sudo apt-get install ruby-dev
更新的 gem env输出是:
RubyGems Environment:
- RUBYGEMS VERSION: 1.8.23
- RUBY VERSION: 1.9.3 (2013-11-22 patchlevel 484) [x86_64-linux]
- INSTALLATION DIRECTORY: /var/lib/gems/1.9.1
- RUBY EXECUTABLE: /usr/bin/ruby1.9.1
- EXECUTABLE DIRECTORY: /usr/local/bin
- RUBYGEMS PLATFORMS:
- ruby
- x86_64-linux
- GEM PATHS:
- /var/lib/gems/1.9.1
- /root/.gem/ruby/1.9.1
- /usr/share/rubygems-integration/1.9.1
- /usr/share/rubygems-integration/all
- GEM CONFIGURATION:
- :update_sources => true
- :verbose => true
- :benchmark => false
- :backtrace => false
- :bulk_threshold => 1000
- REMOTE SOURCES:
- http://rubygems.org/
答案 0 :(得分:1)
试
require 'rubygems'
require 'bundler/setup'
Bundler.require :default
然后使用
运行bundler exec ruby hello.rb
如果你想知道你的宝石在哪里,试试
gem env
答案 1 :(得分:1)
我更新了ruby 2.3.1,我还重命名了以下内容:
要求' HTTPClient'
到
要求' httpclient'
我不确定为什么但在本地我的脚本工作正常,但在服务器上它没有'接受HTTPClient' (大写与小写)。
现在有效。