我知道这个问题在这个网站上被问了好几次,但是在挖掘了其他的答案之后,我仍然对如何解决这个问题感到空白。
我刚刚从生产服务器中提取了rails应用程序的副本,并得到了以下错误:
缺少Rails 2.3.4GEM。请
gem install -v=2.3.4 rails,为您安装的Rails版本更新配置/ RAILS_GEM_VERSION . do中的RAILS_GEM_VERSION设置,或者注释掉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
错误消失了。我知道rails的版本安装在不同的位置,但这两个版本都安装在同一个位置。为什么2.3.8不会引起错误,而2.3.4会引起错误呢?
我怎样才能解决这个问题?
注意:我在乘坐乘客
也值得注意:脚本/控制台似乎在2.3.4下工作.但该应用程序在网络浏览器中仍然失败。
更新
好的,我检查了httpd.conf中的httpd.conf指令,它是/usr/local/bin/ruby,而which ruby生成了/usr/bin/ruby。我将指令更改为/usr/bin/ruby。
这解决了web浏览器的问题,但是现在脚本/控制台出现了同样的错误:
缺少Rails 2.3.4GEM。请
gem install -v=2.3.4 rails,为您安装的Rails版本更新配置/ RAILS_GEM_VERSION . do中的RAILS_GEM_VERSION设置,或者注释掉RAILS_GEM_VERSION以使用已安装的最新版本。
所以现在,我可以在网页浏览器中查看该项目。但是我不能使用任何rails脚本,rake db:migrate失败时出现了以下错误:
激活来自/usr/bin/rake的/System/Library/Frameworks/Ruby.framework/Versions/1.8/usr/lib/ruby/1.8/rubygems.rb:68:in‘/System/Library/Frameworks/Ruby.framework/Versions/1.8/usr/lib/ruby/1.8/rubygems.rb:68: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:in:18
发布于 2011-01-13 20:26:42
您可能已经安装了宝石,但乘客可能在另一个位置寻找。在您的配置中设置GEM_HOME环境变量可能有效。
在Apache中,这看起来像:
SetEnv GEM_HOME /Library/Ruby/Gems/1.8您可能会发现,由于某种原因,2.3.4不在该目录中,就像它是一个失败的安装,不包含任何文件。
通过查看一下,确保2.3.4正确加载:
% ls -l /Library/Ruby/Gems/1.8/gems/rails-2.3.4发布于 2011-01-13 20:34:21
Apache中的PassengerRuby指令是否与从“哪个红宝石”中获得的输出相匹配?如果没有,那么你的乘客就不会在你所在的地方寻找宝石
https://stackoverflow.com/questions/4684797
复制相似问题