2013-03-02 188 views
2

我剛剛下載的Ruby 2.0,並與require一個嚴重的問題,當我嘗試運行一個簡單的末日應用:無法加載文件

/Users/Kuba/.rvm/rubies/ruby-2.0.0-p0/lib/ruby/site_ruby/2.0.0/rubygems/core_ext/kernel_require.rb:45:in `require': cannot load such file -- sinatra (LoadError) 
from /Users/Kuba/.rvm/rubies/ruby-2.0.0-p0/lib/ruby/site_ruby/2.0.0/rubygems/core_ext/kernel_require.rb:45:in `require' 
from test.rb:1:in `<main>' 

而且,這和我有一個問題,現在其他程序,當我使用Ruby 1.8.7時工作得很好。

我該怎麼辦?

回答

0

可能您使用的庫位於Ruby 1.8的目錄下。我認爲在Ruby 2.0下重新安裝所需的庫是個好主意。

2

您是否還安裝了寶石?

Ruby 2.0是一個全新的安裝。 安裝ruby 2.0並不意味着你保留已安裝的寶石。

這不是Ruby 2.0特有的。據我所知,每個新的紅寶石安裝都有自己的寶石。

有一些工具來管理不同影響紅寶石:

  • rvm(紅寶石版本管理器)
  • pik窗戶
+0

但我不使用任何寶石的程序,但我只是做其他的文件,使我有同樣的結果 – Leo 2013-03-02 21:32:49

+0

[辛納屈(https://rubygems.org/gems/sinatra)是一個寶石。你如何使用紅寶石?你是從shell還是從web應用程序使用ruby?也許你從一個Web應用程序使用Ruby,而沒有意識到你使用了額外的寶石。 – knut 2013-03-02 21:36:14

+0

好的,但我也試圖運行其他程序,而不僅僅是使用sinatra這個。他們中的一些人使用require(一些模塊和東西)附加了其他文件,他們都拒絕工作。我知道他們寫的是正確的,因爲我已經多次使用它們多次 – Leo 2013-03-02 21:39:16

3

今天升級爲> = 1.9時,我有這個問題太,我被給予這篇文章閱讀:「Upgrading From REE 1.8.7 to Ruby 1.9.3

你的問題的相關部分,如上所述您的評論:

,但節目中,我不使用任何寶石,而是由我自己作出公正的其他文件,給了我同樣的結果

從文章1

加載路徑:

在Ruby 1.9.3中,LOAD_PATH不再包含因爲它被認爲是安全風險。您可以在需要文件時明確添加它,使用絕對路徑或使用require_relative

+1

激進。感謝'require_relative'提示。 – 2014-09-13 05:59:11