【发布时间】:2011-06-08 18:14:33
【问题描述】:
我知道这个问题已经在这个网站上被问过多次,但是在挖掘了其他答案之后,我仍然对如何解决这个问题一无所知。
我刚刚从生产服务器中提取了一个 rails 应用程序的副本,我收到以下错误:
缺少 Rails 2.3.4 gem。请
gem install -v=2.3.4 rails,更新 您的 RAILS_GEM_VERSION 设置 Rails 的 config/environment.rb 您已安装的版本,或 注释掉要使用的 RAILS_GEM_VERSION 安装的最新版本。
rails 2.3.4 在我的 gem 列表中:
*** LOCAL GEMS ***
actionmailer (2.3.8, 2.3.5, 2.3.4, 2.2.2, 1.3.6)
actionpack (2.3.8, 2.3.5, 2.3.4, 2.2.2, 1.13.6)
actionwebservice (1.2.6)
activerecord (2.3.8, 2.3.5, 2.3.4, 2.2.2, 1.15.6)
activeresource (2.3.8, 2.3.5, 2.3.4, 2.2.2)
activesupport (2.3.8, 2.3.5, 2.3.4, 2.2.2, 1.4.4)
acts_as_ferret (0.4.3)
authlogic (2.1.6)
capistrano (2.5.2)
cgi_multipart_eof_fix (2.5.0)
daemons (1.0.10)
dnssd (0.6.0)
fastercsv (1.5.4)
fastthread (1.0.1)
fcgi (0.8.7)
ferret (0.11.6)
gem_plugin (0.2.3)
gemcutter (0.6.1)
google-spreadsheet-ruby (0.1.2)
highline (1.5.0)
hpricot (0.6.164)
libxml-ruby (1.1.2)
mongrel (1.1.5)
mysql (2.8.1)
needle (1.3.0)
net-scp (1.0.1)
net-sftp (2.0.1, 1.1.1)
net-ssh (2.0.4, 1.1.4)
net-ssh-gateway (1.0.0)
nokogiri (1.4.4)
oauth (0.4.4)
packet (0.1.15)
prawn (0.8.4)
prawn-core (0.8.4)
prawn-fast-png (0.2.3)
prawn-layout (0.8.4)
prawn-security (0.8.4)
rack (1.2.1, 1.1.0, 1.0.1)
rails (2.3.8, 2.3.5, 2.3.4, 2.2.2, 1.2.6)
rake (0.8.3)
RedCloth (4.1.1)
rmagick (2.13.1)
roo (1.9.3)
ruby-ole (1.2.11.1)
ruby-openid (2.1.2)
ruby-yadis (0.3.4)
rubynode (0.1.5)
rubyzip (0.9.4)
spreadsheet (0.6.5.0)
sqlite3-ruby (1.2.4)
termios (0.9.4)
xmpp4r (0.4)
而gem list -d rails 看起来像这样:
*** LOCAL GEMS ***
rails (2.3.8, 2.3.5, 2.3.4, 2.2.2, 1.2.6)
Author: David Heinemeier Hansson
Rubyforge: http://rubyforge.org/projects/rails
Homepage: http://www.rubyonrails.org
Installed at (2.3.8): /Library/Ruby/Gems/1.8
(2.3.5): /System/Library/Frameworks/Ruby.framework/Versions/1.8/usr/lib/ruby/gems/1.8
(2.3.4): /Library/Ruby/Gems/1.8
(2.2.2): /System/Library/Frameworks/Ruby.framework/Versions/1.8/usr/lib/ruby/gems/1.8
(1.2.6): /System/Library/Frameworks/Ruby.framework/Versions/1.8/usr/lib/ruby/gems/1.8
Web-application framework with template engine, control-flow layer,
and ORM.
现在,我迷路了:在environment.rb 我有这条线来选择rails 2.3.4。
RAILS_GEM_VERSION = '2.3.4' unless defined? RAILS_GEM_VERSION
如果我将此行更改为:
RAILS_GEM_VERSION = '2.3.8' unless defined? RAILS_GEM_VERSION
错误消失了。我知道有不同版本的导轨安装在不同的位置,但是有问题的两个版本安装在同一个位置。为什么 2.3.8 不会报错,而 2.3.4 会报错?
我该如何解决这个问题?
注意:我正在乘坐乘客
另外,请注意:脚本/控制台似乎在 2.3.4 下工作...但该应用在网络浏览器中仍然失败。
更新
好的,所以我检查了httpd.conf 中的PassengerRuby 指令,它是/usr/local/bin/ruby,而which ruby 产生了/usr/bin/ruby。我将指令更改为/usr/bin/ruby。
这解决了网络浏览器问题,但是现在脚本/控制台失败并出现同样的错误:
缺少 Rails 2.3.4 gem。请
gem install -v=2.3.4 rails,更新 您的 RAILS_GEM_VERSION 设置 Rails 的 config/environment.rb 您已安装的版本,或 注释掉要使用的 RAILS_GEM_VERSION 安装的最新版本。
所以现在,我可以在网络浏览器中很好地查看该项目。但我不能使用任何 rails 脚本,rake db:migrate 失败并出现以下错误:
/System/Library/Frameworks/Ruby.framework/Versions/1.8/usr/lib/ruby/1.8/rubygems.rb:827:in
report_activate_error': Could not find RubyGem rake (>= 0) (Gem::LoadError) from /System/Library/Frameworks/Ruby.framework/Versions/1.8/usr/lib/ruby/1.8/rubygems.rb:261:inactivate' 来自 /System/Library/Frameworks/Ruby.framework/Versions/1.8/usr/lib/ruby/1.8/rubygems.rb:68:in `gem' from /usr/bin/rake:18
【问题讨论】:
标签: ruby-on-rails ruby gem passenger