我刚从Rails 3.0.3升级到3.2.1。升级在我的Mac上顺利进行,但是我无法在我的Ubuntu生产服务器上运行我的应用程序的3.2.1实例。我得到的错误是:
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:
$ gem list | grep i18n
i18n (0.6.0, 0.5.0)
我不知道出了什么问题。有什么想法吗?
答案 0 :(得分:7)
我有完全相同的错误。你在使用rvm和乘客吗?
如果您在开始乘客安装之前安装了rvm,则在乘客完成安装后,它会为您提供更新apache配置的说明,其中包含以下内容:
LoadModule passenger_module /usr/local/rvm/gems/ruby-1.9.3-p125@global/gems/passenger-3.0.11/ext/apache2/mod_passenger.so
PassengerRoot /usr/local/rvm/gems/ruby-1.9.3-p125@global/gems/passenger-3.0.11
PassengerRuby /usr/local/rvm/wrappers/ruby-1.9.3-p125@global/ruby
我已经安装了全球宝石套装的乘客但后来我创建了另一个我用于我的应用程序的宝石套装(让我们称之为新的宝石套装'foo')。
对我有用的解决方案是在第3行将'global'改为'foo':
PassengerRuby /usr/local/rvm/wrappers/ruby-1.9.3-p125@foo/ruby
答案 1 :(得分:3)
bundle install --deployment
为我工作。
答案 2 :(得分:1)
应用根目录下的.rvmrc文件可以解决此问题。通过rvm documentation:
# my-app-name/.rvmrc
if [[ -s "/Users/sutto/.rvm/environments/ree-1.8.7-2010.02@my-app-name" ]] ; then
. "/Users/sutto/.rvm/environments/ree-1.8.7-2010.02@my-app-name"
else
rvm --create use "ree-1.8.7-2010.02@my-app-name"
fi
在适用的地方替换正确的用户,Ruby版本和gemset。 (Linux用户可能会有home / username / .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'
答案 3 :(得分:1)
我遇到了同样的问题,我意识到我正在使用jRuby来耙(我使用的是RVM)。使用Ruby,它没有问题:)
因此,请确保您使用的是Ruby而不是jRuby。如果你也在使用RVM,请使用:
rvm list
获取所有已安装红宝石的列表
rvm use ruby-...
选择它。