2011-09-22 58 views
4

我正在嘗試編寫一個使用海葵寶石的履帶,這需要機器人的寶石。無論出於何種原因,機器人絕對不會包括在內。下面是我的一些環境信息:紅寶石gem環境問題 - LoadError:沒有這樣的文件加載 - 機器人

$ gem list -d robots 

*** LOCAL GEMS *** 

robots (0.10.1) 
    Author: Kyle Maxwell 
    Homepage: http://github.com/fizx/robots 
    Installed at: /usr/local/lib/ruby/gems/1.9.1 

    Simple robots.txt parser 

$ gem env 
RubyGems Environment: 
    - RUBYGEMS VERSION: 1.8.10 
    - RUBY VERSION: 1.9.2 (2011-02-18 patchlevel 180) [x86_64-darwin10.7.0] 
    - INSTALLATION DIRECTORY: /usr/local/lib/ruby/gems/1.9.1 
    - RUBY EXECUTABLE: /usr/local/bin/ruby 
    - EXECUTABLE DIRECTORY: /usr/local/bin 
    - RUBYGEMS PLATFORMS: 
    - ruby 
    - x86_64-darwin-10 
    - GEM PATHS: 
    - /usr/local/lib/ruby/gems/1.9.1 
    - /Users/ryan/.gem/ruby/1.9.1 
    - GEM CONFIGURATION: 
    - :update_sources => true 
    - :verbose => true 
    - :benchmark => false 
    - :backtrace => false 
    - :bulk_threshold => 1000 
    - REMOTE SOURCES: 
    - http://rubygems.org/ 

$ gem which robots 
/usr/local/lib/ruby/gems/1.9.1/gems/robots-0.10.1/lib/robots.rb 

任何想法?所有其他寶石加載正確,我從來沒有遇到過這個問題。請注意,我使用的是Ruby 1.9版本,因此需要rubygems。添加

require 'rubygems' 

...到一個腳本的前面返回false,因爲該文件已經包含在內,並沒有幫助的情況。有任何想法嗎?

編輯:發佈失敗代碼的示例。請注意,返回false的rubygems並不意味着rubygems無法加載 - 而是它已經被加載。看到這個帖子:http://www.ruby-forum.com/topic/157442

$ irb 
irb(main):001:0> require 'rubygems' 
=> false 
irb(main):002:0> require 'active_record' 
=> true 
irb(main):003:0> require 'mechanize' 
=> true 
irb(main):004:0> require 'robots' 
LoadError: no such file to load -- robots 
    from /usr/local/lib/ruby/site_ruby/1.9.1/rubygems/custom_require.rb:59:in `require' 
    from /usr/local/lib/ruby/site_ruby/1.9.1/rubygems/custom_require.rb:59:in `rescue in require' 
    from /usr/local/lib/ruby/site_ruby/1.9.1/rubygems/custom_require.rb:35:in `require' 
    from (irb):4 
    from /usr/local/bin/irb:12:in `<main>' 
irb(main):005:0> 
+0

我的第一個建議是使用RVM,但這可能無法解決問題。我不知道。抱歉! – ZMorek

+0

你可以發佈失敗的代碼嗎? '需要'rubygems''和'require'robots''是否已經失敗? – rdvdijk

+0

我發佈了我的失敗代碼。要求'rubygems'並不真正失敗,因爲它已經包含在內。請參閱我提到的文章以獲取更多信息。 – rybosome

回答

13

它看起來像寶石一直使用錯誤的權限創建;有a bug opened for this on github

更改的權限與

sudo chmod a+r /usr/local/lib/ruby/gems/1.9.1/gems/robots-0.10.1/lib/robots.rb 

應該修復它,但要注意其他權限問題。你可能會更好用

sudo chmod -R a+r /usr/local/lib/ruby/gems/1.9.1/gems/robots-0.10.1 

以遞歸方式使gem中的所有文件都可讀。

robots.rb文件(以及其他一些文件)正在安裝權限-rw-rw----,所以任何使用本地安裝rvm或類似地方安裝gem作爲本地用戶的用戶都不會受此影響。

+1

你是救命的人 - 如果可以的話,我會不止一次地加註。非常感謝你 - 這完全解決了這個問題。 – rybosome

相關問題