1

背景

在我的本地机器上,我尝试通过我的 gemfile 安装“子弹”gem,bundle似乎没有发生任何事故,但是在重新启动我的应用程序时,乘客开始抛出错误Invalid gemspec for uniform_notifier。似乎其他人遇到了这个问题,并且StackOverflow 上的建议解决方案说通过运行来更新 RubyGems:

问题

gem update --system

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

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

我从我的 gemfile 中删除了“bullet”,所以它现在恢复到昨天工作的状态,所以我认为我的 gemfile 中不会有错误。此外,我所有的其他应用程序现在都坏了,它们的 gemfile 根本没有改变。

以供参考:

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

当我gem list为全局和本地 gemsets 执行操作时,它显示已安装bundler 1.1.0

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

4

3 回答 3

0

你提交了你的 Gemfile.lock 吗?

于 2012-11-19T18:12:33.653 回答
0

我可以通过运行将 ruby​​gems-update 回滚到以前安装的版本来解决此问题

gem update --system 1.8.11

那时我所有的应用程序都重新开始工作了。我仍然不确定问题出在哪里,并且很乐意将接受的答案从我自己的答案转换为可以提供更深入了解为什么更新 ruby​​gems-update 会破坏乘客集成的人。

于 2012-11-20T15:27:34.327 回答
0

我希望 Phusion Passenger 的人能给出一个明确的答案,但我只想说我经历过同样的事情。更新 ruby​​gems 破坏了乘客-nginx 的集成,需要重新编译乘客-nginx 模块。不知道为什么会这样。我的猜测是该模块以某种方式编译时对特定版本的 ruby​​gems 进行了硬引用。

于 2016-10-19T21:00:28.103 回答