2013-02-24 2 views
1

У меня есть простой скрипт:не может загрузить такой файл - mechanize.rb (LoadError) на OSX 10,6

require 'rubygems' 
require 'mechanize' 
p 'Success!' 

Когда я запускаю сценарий, я получаю:

/Users/.../.rvm/rubies/ruby-1.9.3-p385/lib/ruby/site_ruby/1.9.1/rubygems/custom_require.rb:36:in `require': cannot load such file -- mechanize.rb (LoadError) 
from /Users/.../.rvm/rubies/ruby-1.9.3-p385/lib/ruby/site_ruby/1.9.1/rubygems/custom_require.rb:36:in `require' 
from test.rb:2:in `<main>' 

В отчаянии я установленный RVM и обновленный рубин из системы 1.8.7. Тем не менее, я все еще получаю ту же ошибку, что и до установки rvm. Я сейчас работаю:

mute:nfg ..$ ruby -v 
ruby 1.9.3p385 (2013-02-06 revision 39114) [x86_64-darwin10.8.0] 

IRB отчетов те же:

1.9.3p385 :001 > require 'rubygems' 
=> false 
1.9.3p385 :002 > require 'mechanize' 
LoadError: cannot load such file -- mechanize 
from /Users/../.rvm/rubies/ruby-1.9.3-p385/lib/ruby/site_ruby/1.9.1/rubygems/custom_require.rb:36:in `require' 
from /Users/../.rvm/rubies/ruby-1.9.3-p385/lib/ruby/site_ruby/1.9.1/rubygems/custom_require.rb:36:in `require' 
from (irb):2 
from /Users/../.rvm/rubies/ruby-1.9.3-p385/bin/irb:16:in `<main>' 

меня переустанавливать Mechanize, используя Sudo и без, несколько раз из каталога проекта.

Я попытался вручную потребовать драгоценный камень, а также его полный путь.

mute:nfg ..$ ruby -l ~/.gems/gems/mechanize-2.5.1/lib/mechanize.rb 
/Users/../.rvm/rubies/ruby-1.9.3-p385/lib/ruby/site_ruby/1.9.1/rubygems/custom_require.rb:36:in `require': cannot load such file -- mime/types (LoadError) 
from /Users/../.rvm/rubies/ruby-1.9.3-p385/lib/ruby/site_ruby/1.9.1/rubygems/custom_require.rb:36:in `require' 
from /Users/../.gems/gems/mechanize-2.5.1/lib/mechanize.rb:4:in `<main>' 

(я попытался установить MIME-типы, тоже.)

РВМ перечисляет камень штрафа:

mute:nfg ..$ rvm all do gem list 
*** LOCAL GEMS *** 
... 
libxml-ruby (2.3.3, 1.1.2) 
mechanize (2.5.1) 
mime-types (1.21, 1.19) 
... 

Как делает драгоценный камень:

mute:nfg ..$ gem list 
*** LOCAL GEMS *** 
... 
libxml-ruby (2.3.3, 1.1.2) 
mechanize (2.5.1) 
mime-types (1.21, 1.19) 
... 

Любопытно, $ GEM_PATHs ~/.rvm/gems/ruby-1.9.3-p385, ~/.rvm/gems/[email protected] и ~/.rvm/gems/[email protected] выглядят в основном пустыми (два драгоценных камня в t во-первых, ни в одном из последних). Однако GUI JewelleryBox подтверждает, что все три gemset содержат Mechanize.

EDIT: Вот результат гем окр:

RubyGems Environment: 
    - RUBYGEMS VERSION: 1.8.25 
    - RUBY VERSION: 1.9.3 (2013-02-06 patchlevel 385) [x86_64-darwin10.8.0] 
    - INSTALLATION DIRECTORY: /Users/../.gems 
    - RUBY EXECUTABLE: /Users/../.rvm/rubies/ruby-1.9.3-p385/bin/ruby 
    - EXECUTABLE DIRECTORY: /Users/../.gems/bin 
    - RUBYGEMS PLATFORMS: 
    - ruby 
    - x86_64-darwin-10 
    - GEM PATHS: 
    - /Users/../.gems 
    - /Users/../.gem 
    - /usr/lib/ruby/gems/1.8 
    - /Library/Ruby/Gems/1.8 
    - /usr/bin 
    - GEM CONFIGURATION: 
- :update_sources => true 
- :verbose => true 
- :benchmark => false 
- :backtrace => false 
- :bulk_threshold => 1000 
- :sources => ["http://gems.rubyforge.org/", "http://gems.github.com"] 
- "gemhome" => "/Users/../.gems" 
- "gempath" => ["/Users/../.gem", "/usr/lib/ruby/gems/1.8", "/Library/Ruby/Gems/1.8", "/usr/bin"] 
- REMOTE SOURCES: 
- http://gems.rubyforge.org/ 
- http://gems.github.com 

Может кто-нибудь помочь?

+0

Вы пытались использовать 'rvm use 1.9.3-p385' перед установкой gem? также, если вы находитесь в проекте dir run 'bundle install'. – mpapis

+0

Да, я пробовал использовать rvm 1.9.3-p385 безрезультатно. bundle install сообщает мне, что пакет не установлен и запускает gem install bundler. Я устанавливаю пакет, но потом он все еще говорит мне запустить gem install bundler. Вы уверены, что связка является необходимой зависимостью механизации? Будет ли gem install mechanize просто установить его, если это так? –

+0

Можете ли вы показать свой «gem env»? – mpapis

ответ

1

среда настроена на использование пользовательских путей для драгоценных камней, это сбивает с толку RubyGems, как установить в местах, которые не доступны в PATH

перспективе rvm get head и внимательно прочитать выходы, он предупредит вас о записях в *gemrc, что break rubygems/RVM