首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >缺失轨宝石

缺失轨宝石
EN

Stack Overflow用户
提问于 2011-01-13 20:17:45
回答 2查看 7.7K关注 0票数 2

我知道这个问题在这个网站上被问了好几次,但是在挖掘了其他的答案之后,我仍然对如何解决这个问题感到空白。

我刚刚从生产服务器中提取了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列表中:

代码语言:javascript
复制
*** 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看起来是这样的:

代码语言:javascript
复制
*** 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

EN

回答 2

Stack Overflow用户

发布于 2011-01-13 20:26:42

您可能已经安装了宝石,但乘客可能在另一个位置寻找。在您的配置中设置GEM_HOME环境变量可能有效。

在Apache中,这看起来像:

代码语言:javascript
复制
SetEnv GEM_HOME /Library/Ruby/Gems/1.8

您可能会发现,由于某种原因,2.3.4不在该目录中,就像它是一个失败的安装,不包含任何文件。

通过查看一下,确保2.3.4正确加载:

代码语言:javascript
复制
% ls -l /Library/Ruby/Gems/1.8/gems/rails-2.3.4
票数 2
EN

Stack Overflow用户

发布于 2011-01-13 20:34:21

Apache中的PassengerRuby指令是否与从“哪个红宝石”中获得的输出相匹配?如果没有,那么你的乘客就不会在你所在的地方寻找宝石

票数 2
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/4684797

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档