【问题标题】:Missing Rails Gem缺少 Rails 宝石
【发布时间】: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:in activate' 来自 /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


    【解决方案1】:

    Apache 配置中的PassengerRuby 指令是否与您从“which ruby​​”获得的输出相匹配?如果不是,那么您的乘客就不会在您所在的同一个地方寻找宝石

    【讨论】:

    • 谢谢!我从没想过要检查。这解决了浏览器问题,但创建了脚本/控制台的新问题,我更新了我的问题。
    【解决方案2】:

    您可能安装了 gems,但 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
    

    【讨论】:

    • 为什么乘客会在 /Library/Ruby/Gems/1.8 中查找 rails 2.3.8 而不是 2.3.4?两颗宝石似乎都没有损坏。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多