在Apache重启之后,客户“丢失了rails 2.3.4 gem”

我有一个rails应用程序在客运/阿帕奇2.2.3 / RHEL上运行。 一切工作正常,直到我不得不重新启动Apache。 一旦我这样做,我收到以下消息:

缺lessRails 2.3.4gem。 请gem install -v=2.3.4 rails ,在config / environment.rb中更新您安装的Rails版本的RAILS_GEM_VERSION设置,或者注释掉RAILS_GEM_VERSION以使用安装的最新版本。

我不知道该怎么做,因为应用程序之前运行良好。 我确实touch restart.txt ,尝试重新启动它,再次从Capistrano部署,并删除/再次安装rails gem,但没有任何工作。 rails -v打印Rails 2.3.4。

我前一阵子解决了这个问题,用命令/etc/init.d/httpd restart而不是service httpd restart来重新启动apache。 不知道为什么工作,但它确实。 没有一个environment.rb的变化做了什么。

我遇到了类似的问题….这是我如何解决它…

首先通过在terminal中运行“gem environment”来检查当前的gem环境。

例如,我find了GEM PATHS

/usr/local/lib/ruby/gems/1.8/home/anatoly/.gem/ruby/1.8

我真的用sudo安装所有的gem,所以我只关心第一个。

接下来,将其添加到您的path。

我在Ubuntu 9.10上,所以意思是说:sudo gedit〜/ .bashrc

在我添加的文件的底部:export PATH = / usr / local / lib / ruby​​ / gems / 1.8:$ PATH

在rails应用程序的config / environment.rb文件中)。我在顶部添加了这个:ENV ['GEM_PATH'] =“/usr/local/lib/ruby/gems/1.8:#{ENV['GEM_PATH'] }”

保存,注销,重新login。横过你的手指。

这听起来像Rails应用程序是用以前的版本或新版本的轨道build成的。 为了解决这个问题,你需要cd到应用程序的最顶层父项(app,config和其他目录的父项),然后运行:

 rake rails:update 

和/或更新config / environment.rb到正确的版本。

 RAILS_GEM_VERSION = '2.3.4′ unless defined? RAILS_GEM_VERSION 

也就是说,如果你从某个地方得到应用程序,运行上述可能无法正常工作。 回到应用程序构build的机器上,更新导轨以及该机器上的应用程序。