Требуется rubygems работает в IRB, но не в сценарии - PullRequest
4 голосов
/ 04 апреля 2010

У меня Ubuntu 9.04 Ruby 1.8 Rubygems 1.3.5

In irb,

irb(main):002:0> require 'rubygems'
=> true

В сценарии

$ ./test.rb 
./test.rb:2:in `require': no such file to load -- rubygems (LoadError)
from ./test.rb:2

$ gem environment
RubyGems Environment:
  - RUBYGEMS VERSION: 1.3.5
  - RUBY VERSION: 1.8.6 (2009-08-04 patchlevel 383) [i686-linux]
  - INSTALLATION DIRECTORY: /usr/local/lib/ruby/gems/1.8
  - RUBY EXECUTABLE: /usr/local/bin/ruby
  - EXECUTABLE DIRECTORY: /usr/local/bin
  - RUBYGEMS PLATFORMS:
    - ruby
    - x86-linux
  - GEM PATHS:
     - /usr/local/lib/ruby/gems/1.8
  - GEM CONFIGURATION:
     - :update_sources => true
     - :verbose => true
     - :benchmark => false
     - :backtrace => false
     - :bulk_threshold => 1000
  - REMOTE SOURCES:
     - http://gems.rubyforge.org/


$ which ruby
/usr/local/bin/ruby

Я думаю, что это как-то связано с моим PATH, но я не уверен, как или что исправить.

Кажется, моя переменная $ LOAD_PATH содержит путь к каталогам gem.

$ gem env gemdir
/usr/local/lib/ruby/gems/1.8
$ irb
irb(main):001:0> $LOAD_PATH
=> ["/usr/local/lib/ruby/site_ruby/1.8", "/usr/local/lib/ruby/site_ruby/1.8/i686-linux", "/usr/local/lib/ruby/site_ruby", "/usr/local/lib/ruby/1.8", "/usr/local/lib/ruby/1.8/i686-linux", "."]

Ответы [ 2 ]

1 голос
/ 05 апреля 2010

Отметьте $LOAD_PATH, эта переменная содержит пути, которые ищет ruby, когда вы используете require.

0 голосов
/ 28 марта 2012

Я предполагаю, что линия шебанга в irb указывает на другой рубин, чем тот, что в вашем $ PATH Попробуйте

$ ruby $(type -p irb)

и посмотрите, работает ли ваш 'require' rubygems ''. Если нет, посмотрите на #! строка в irb, чтобы увидеть, какой ruby ​​он использует ...

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...