“gem update --system”之后Passenger抛出Bundler :: GemfileError

时间:2012-11-19 17:25:05

标签: rvm bundler passenger

背景

在我的本地计算机上,我尝试通过我的gemfile安装'bullet'gem,并且bundle似乎没有发生任何事故,但是在重新启动我的app时,乘客开始抛出错误Invalid gemspec for uniform_notifier。似乎其他人有this issuesuggested resolution on StackOverflow表示通过运行来更新RubyGems:

问题

gem update --system

这在运行时没有产生任何错误消息,但是现在没有任何应用程序会启动。他们都给出了同样模糊的乘客错误:

PhusionPassenger::UnknownError
There was an error in your Gemfile, and Bundler cannot continue. (Bundler::GemfileError)

我从我的gemfile中删除了'bullet',所以现在它恢复到昨天工作的状态,所以我认为我的gemfile中不会出错。此外,我的所有其他应用程序现已破坏,其gemfiles根本没有变化。

供参考:

ruby -v
ruby 1.9.2p0 (2010-08-18 revision 29036) [x86_64-darwin10.5.0]
rails -v
Rails 3.2.6
rvm --version
rvm 1.1.4 by Wayne E. Seguin

当我为全局和本地gemsets gem list时,它会显示 bundler 1.1.0

编辑:我还应该提一下,运行rails s启动一个WEBrick服务器就好了,我可以在localhost:3000上访问我的应用程序,所以只有在Passenger下才会出现这个错误起来。

3 个答案:

答案 0 :(得分:0)

你提交了你的Gemfile.lock吗?

答案 1 :(得分:0)

我能够通过运行

将rubygems-update回滚到之前安装的版本来解决这个问题
gem update --system 1.8.11

此时我的所有应用程序都重新开始工作了。我仍然不确定问题是什么,并且很乐意将接受的答案从我自己转移给能够更深入了解为什么更新rubygems-update会破坏乘客整合的人。

答案 2 :(得分:0)

我希望来自Phusion Passenger的人能给出一个明确的答案,但我只是想说我经历过同样的事情。更新rubygems已经打破了我们的passenger-nginx集成,需要重新编译passenger-nginx模块。不知道为什么会这样。我的推测是,模块以某种方式编译,并对特定版本的rubygems进行了硬性引用。