я установил некоторые драгоценные камни, и я пытаюсь использовать их в приложении Ruby:Gem найдено в IRB, а не в Рубине
require 'rubygems'
require 'mygem'
Когда я запустить приложение, хотя, я получаю эту ошибку: <internal:lib/rubygems/custom_require>:29:in
require ': нет такого файла для загрузки - mygem (LoadError) `
Но если я попытаюсь потребовать драгоценный камень внутри irb
(убедитесь, что сначала требуется« rubygems »), он отлично работает. Что я должен сделать? Я пробовал поиск по этой проблеме, но не понял.
Запуск which
на ruby
, gem
и irb
показывает, что все они в /opt/local/bin/
, т.е.
> which ruby
/opt/local/bin/ruby
> which gem
/opt/local/bin/gem
> which irb
/opt/local/bin/irb
Update, чтобы ответить на поставленные вопросы (да, IRB и рубин указывают на разные папки) :
$LOAD_PATH
и $:
в IRB и содержат, кажется, указывая на рубин 1.8 папки:
/opt/local/lib/ruby/site_ruby/1.8
/opt/local/lib/ruby/site_ruby/1.8/i686-darwin10
/opt/local/lib/ruby/site_ruby
/opt/local/lib/ruby/vendor_ruby/1.8
/opt/local/lib/ruby/vendor_ruby/1.8/i686-darwin10
/opt/local/lib/ruby/vendor_ruby
/opt/local/lib/ruby/1.8
/opt/local/lib/ruby/1.8/i686-darwin10
.
$:
в рубиновых указывает на рубин 1.9.1 папки:
/usr/local/lib/ruby/site_ruby/1.9.1
/usr/local/lib/ruby/site_ruby/1.9.1/i386-darwin9.8.0
/usr/local/lib/ruby/site_ruby
/usr/local/lib/ruby/vendor_ruby/1.9.1
/usr/local/lib/ruby/vendor_ruby/1.9.1/i386-darwin9.8.0
/usr/local/lib/ruby/vendor_ruby
/usr/local/lib/ruby/1.9.1
/usr/local/lib/ruby/1.9.1/i386-darwin9.8.0
gem env
показывает
RubyGems Environment:
- RUBYGEMS VERSION: 1.4.1
- RUBY VERSION: 1.8.7 (2010-12-23 patchlevel 330) [i686-darwin10]
- INSTALLATION DIRECTORY: /opt/local/lib/ruby/gems/1.8
- RUBY EXECUTABLE: /opt/local/bin/ruby
- EXECUTABLE DIRECTORY: /opt/local/bin
- RUBYGEMS PLATFORMS:
- ruby
- x86-darwin-10
- GEM PATHS:
- /opt/local/lib/ruby/gems/1.8
- GEM CONFIGURATION:
- :update_sources => true
- :verbose => true
- :benchmark => false
- :backtrace => false
- :bulk_threshold => 1000
- "gempath" => ["/opt/local/lib/ruby/gems/1.8"]
- :sources => ["http://rubygems.org/", "http://gems.github.com", "http://gems.github.com"]
- REMOTE SOURCES:
- http://rubygems.org/
- http://gems.github.com
- http://gems.github.com
Gem.path
в IRB указывает на
/Users/grautur/.gem/ruby/1.8
/usr/local/lib/ruby/gems/1.8
Gem.path
в рубиновых указывает на
/Users/grautur/.gem/ruby/1.9.1
/usr/local/lib/ruby/gems/1.9.1
В чем содержатся переменные '$ LOAD_PATH' или' $: '? Изучение тех, кто в каждой среде, вероятно, будет достаточно информативным. –
Хмм, irb, похоже, использует ruby 1.8 ('$ LOAD_PATH' и' $: 'оба: /opt/local/lib/ruby/site_ruby/1.8,/opt/local/lib/ruby/site_ruby/1.8/i686- darwin10,/Opt/местные/Библиотека/рубин/site_ruby,/Opt/местные/Библиотека/рубин/vendor_ruby/1,8,/Opt/местные/Библиотека/рубин/vendor_ruby/1,8/i686-darwin10,/Opt/местные/Библиотека/ruby/vendor_ruby,/opt/local/lib/ruby / 1.8,/opt/local/lib/ruby / 1.8/i686-darwin10 ,.), в то время как ruby использует ruby 1.9.1 ('$ LOAD_PATH' пуст,' $: '- версии 1.9.1 предыдущих путей). – grautur