2012-02-28 62 views
7

我剛剛從Rails 3.0.3升級到3.2.1。升級在我的Mac上順利進行,但我無法在我的Ubuntu生產服務器上運行我的應用程序的3.2.1實例。我得到的錯誤是這樣的:在任何來源中找不到i18n-0.6.0

Could not find i18n-0.6.0 in any of the sources (Bundler::GemNotFound) 

顯然,其他人也有過這個相同的問題。不幸的是,the solution here不能解決它。做sudo bundle install似乎沒有區別。

我也發現this post,但我不明白OP究竟是怎麼解決了這個問題的。

還有this post以及OP的問題就在那裏。

而且我已經安裝了i18n寶石:

$ gem list | grep i18n 
i18n (0.6.0, 0.5.0) 

我不知道什麼可能是錯誤的。有任何想法嗎?

+0

你可以運行'捆綁列表| grep i18n'和輸出,請? – TheDelChop 2012-02-28 21:41:56

+0

'* i18n(0.6.0)' – 2012-02-28 21:44:38

+0

你試圖運行的命令是什麼,給你的錯誤? – TheDelChop 2012-02-28 21:46:05

回答

7

我有完全相同的錯誤。你正在使用rvm和乘客?

如果您已經開始安裝的乘客,乘客完成其安裝後,它給你更新Apache配置類似的東西指令之前RVM安裝:

LoadModule passenger_module /usr/local/rvm/gems/[email protected]/gems/passenger-3.0.11/ext/apache2/mod_passenger.so 
PassengerRoot /usr/local/rvm/gems/[email protected]/gems/passenger-3.0.11 
PassengerRuby /usr/local/rvm/wrappers/[email protected]/ruby 

我已經安裝了乘客與全球寶石,但後來我創建了另一個用於我的應用程序的gemset(讓我們稱這個新的gemset'foo')。

爲我工作的解決辦法是改變在第3行「全球」到「富」:

PassengerRuby /usr/local/rvm/wrappers/[email protected]/ruby 
+0

感謝您的回答@draganstankovic,但它不是一個真正的解決方案。全球gemset的重點是它可以被許多應用程序共享。 – dangerousdave 2012-06-04 07:48:15

+0

@dangerousdave請再讀一遍我的答案。重點在於讓乘客與他使用的任何寶石同步。 (無論是全球性的,美孚還是酒吧,無所謂) – draganstankovic 2012-06-07 22:25:35

1

在您的應用程序的根目錄的文件.rvmrc解決了這個問題。通過rvm documentation

# my-app-name/.rvmrc 
if [[ -s "/Users/sutto/.rvm/environments/[email protected]" ]] ; then 
    . "/Users/sutto/.rvm/environments/[email protected]" 
else 
    rvm --create use "[email protected]" 
fi 

替換爲正確的用戶,紅寶石版和寶石適用。 (Linux用戶將可能有家庭/用戶名/ .rvm ...)

現在,讓我們添加setup_load_paths.rb使乘客有正確的路徑(應該不會有什麼改變這裏):

# my-app-name/config/setup_load_paths.rb 
if ENV['MY_RUBY_HOME'] && ENV['MY_RUBY_HOME'].include?('rvm') 
    begin 
    require 'rvm' 
    RVM.use_from_path! File.dirname(File.dirname(__FILE__)) 
    rescue LoadError 
    raise "RVM gem is currently unavailable." 
    end 
end 

# If you're not using Bundler at all, remove lines bellow 
ENV['BUNDLE_GEMFILE'] = File.expand_path('../Gemfile', File.dirname(__FILE__)) 
require 'bundler/setup' 
1

我有同樣的問題,我意識到我正在使用jRuby耙(我正在使用RVM)。使用Ruby它沒有問題:)

因此,請確保您使用Ruby而不是jRuby。萬一你正在使用RVM爲好,使用方法:

rvm list 

要獲得安裝的所有紅寶石的列表,並

rvm use ruby-... 

選擇它。

+0

這對我來說很有效,而且比將全局重命名爲foo更有意義 – 1dayitwillmake 2013-04-05 15:50:34

+0

儘管如此,我們卻陷入了低谷。好極了 – Sikian 2013-10-27 15:05:59

3

bundle install --deployment 爲我工作。