2012-02-28 129 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 为我工作。

相关问题