2010-05-31 77 views
10

我對Ubuntu10我看到「寶石列表」寶石,但有「沒有這樣的文件來加載」

sudo apt-get install ruby1.9.1-full 

然後下載rubygem 1.3.7的源和安裝

sudo ruby setup.rb 

然後,例如,安裝西納特拉

sudo gem install sinatra 

最後開放IRB和類型

require "rubygems" 
require "sinatra" 

,並得到錯誤

LoadError: no such file to load -- sinatra 
    from (irb):2:in `require' 
    from (irb):2 
    from /usr/bin/irb:12:in `<main>' 
+0

你能更具體嗎?在什麼情況下,你可以引用錯誤?嘗試重新安裝並傳遞詳細信息以查看正在發生的事情。 – Jay 2010-05-31 18:03:27

+4

這個問題在我目前使用的一本教科書(http://beta.saasbook.info/)中突出顯示。準備儘快獲得「熱門問題」徽章。 – 2012-03-04 22:39:39

+4

來自這裏閱讀工程長期持久軟件(SaaS書) – coder9 2012-03-22 03:50:37

回答

4

我正是這個問題。問題是寶石和紅寶石不同意寶石在哪裏生活。比較這些:

ruby -e "puts Gem.path" 

gem env 

gem which sinatra 

如果你像我的設置,你會發現,有一個在寶石env的路徑條目,是不是在Gem.path,而這正是西納特拉將聲稱是。在我的情況下,我不得不添加

export GEM_HOME=/usr/lib/ruby/gems/1.9.1 

我的.profile。然後大家都很開心。

2

我平時打這個錯誤,當我忘記:

require 'rubygems' 

這將會是有益的,如果你提供的實際代碼示例,但是,你想要什麼寶石要求,以及如果這不能解決問題,您使用的Ruby版本。

+1

從1.9開始,你不需要rubygems – 2010-05-31 19:08:14

+0

@Isaac Cambron - 這是真的,這就是爲什麼我要求更多細節。 OP從此提供了它們。答案顯然與這個特定的用戶無關,但我會把它留給參考:) – Matchu 2010-05-31 19:12:09

1

這在此之前已經有很多次了。問題是你可能有兩個版本的紅寶石。一個是安裝寶石,另一個正在嘗試使用它。在終端執行此操作:

$ which -a ruby 

或者這樣:

$ which -a gem 

,看看您是否已經安裝紅寶石/寶石的多個版本。如果是這樣 - 刪除一個版本(通過$ rm或系統的包管理器)。

+0

我有一個紅寶石和一個寶石:) – 2010-05-31 20:52:12

3

執行

sudo gem install sinatra --verbose 

並記下問題是安裝寶石路。

然後在IRB

puts $LOAD_PATH 

試試這個,確保創業板安裝在目錄中的一個$LOAD_PATH

,理想剛開始使用http://rvm.beginrescueend.com/

+0

+1我認爲這是更容易調整目錄集加載路徑(如我的答案),但顯然這也會起作用。 – 2010-05-31 19:13:51

+0

rvm讓我困惑 – 2010-05-31 20:07:59

0

我使用紅寶石寶石1.8.7作爲一個項目。我得到了同樣的錯誤。使用行require 'rubygems'。它必須始終是第一個要求聲明,否則可能會出現錯誤。在我的代碼,我有

require 'watir' 
require 'rubygems' 
# more code 

我得到了錯誤 - 在'需要':沒有這樣的文件來加載 - 的Watir(LoadError)。 當我先把rubygems,錯誤消失,一切正常。我不知道 爲什麼會發生這種情況。

順便說一句,我試過user24359答案,它並沒有幫助我。

C:\code>ruby -e "puts Gem.path" 
-e:1: uninitialized constant Gem (NameError) 
相關問題