脚本没有在服务器上运行,它无法找到我的宝石

时间:2016-09-04 18:23:50

标签: ruby

我有一个简单的脚本,包含我刚上传到服务器的2个文件。

  1. 的Gemfile
  2. hello.rb的
  3. 当我跑步时:

    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/
    

2 个答案:

答案 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' (大写与小写)。

现在有效。