ruby-on-rails - 失踪的 rails gem

标签 ruby-on-rails ruby rubygems passenger

我知道这个问题已在此网站上多次被问到,但在深入研究其他答案后,我仍然对如何解决这个问题一无所知。

我刚刚从生产服务器中提取了 Rails 应用程序的副本,但出现以下错误:

Missing the Rails 2.3.4 gem. Please gem install -v=2.3.4 rails, update your RAILS_GEM_VERSION setting in config/environment.rb for the Rails version you do have installed, or comment out RAILS_GEM_VERSION to use the latest version installed.

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 -drails看起来像这样:

*** 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' 除非定义? RAILS_GEM_VERSION

如果我将此行更改为:

RAILS_GEM_VERSION = '2.3.8' 除非定义? RAILS_GEM_VERSION

错误消失。我知道有不同版本的 Rails 安装在不同的位置,但有问题的两个版本安装在同一位置。为什么 2.3.8 不会报错,而 2.3.4 却报错?

如何解决这个问题?

注意:我正在 Passenger 上运行

另外,请注意:脚本/控制台似乎可以在 2.3.4 下运行...但该应用程序在网络浏览器中仍然失败。

更新

好的,所以我检查了 httpd.conf 中的 PassengerRuby 指令,它是 /usr/local/bin/ruby哪个 ruby​​ 生成了 /usr/bin/ruby。我将指令更改为 /usr/bin/ruby

这解决了网络浏览器问题,但是现在脚本/控制台失败并出现相同的错误:

Missing the Rails 2.3.4 gem. Please gem install -v=2.3.4 rails, update your RAILS_GEM_VERSION setting in config/environment.rb for the Rails version you do have installed, or comment out RAILS_GEM_VERSION to use the latest version installed.

现在,我可以在网络浏览器中正常查看该项目了。但我无法使用任何 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:in activate' from /System/Library/Frameworks/Ruby.framework/Versions/1.8/usr/lib/ruby/1.8/rubygems.rb:68:in `gem' from /usr/bin/rake:18

最佳答案

您可能已经安装了 gem,但 Passenger 可能正在寻找不同的位置。可能有效的一件事是在配置中设置 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

关于ruby-on-rails - 失踪的 rails gem ,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/4684797/

相关文章:

ruby-on-rails - 我对用于测试 Rails 应用程序的工具数量感到不知所措,我应该从哪里开始?

ruby-on-rails - Devise - 发出请求而不重置倒计时,直到用户因不活动而注销

Ruby 项目 VS Ruby gem

css - 如何从 application.css 中查找 CSS 错误

ruby-on-rails - Ruby slim - 来自变量的 div 类

ruby - Bundler 找不到 gem "actionpack"的兼容版本

ruby-on-rails - 将图像插入 ruby​​ 中的 pdf

ruby-on-rails - RSpec & Database Cleaner - 将某些对象永久保留在测试数据库中

ruby-on-rails - Geokit 问题 - "could not find generator"

ruby-on-rails - 回形针 :style options not working with s3_direct_upload