【问题标题】:Passenger throws Bundler::GemfileError after "gem update --system"乘客在“gem update --system”之后抛出 Bundler::GemfileError
【发布时间】:2012-11-19 17:25:05
【问题描述】:

背景

在我的本地机器上,我尝试通过我的 gemfile 安装“子弹”gem,bundle 似乎没有发生任何事故,但是在重新启动我的应用程序时,乘客开始抛出错误 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 中不会有错误。此外,我的所有其他应用程序现在都已损坏,并且它们的 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

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

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

【问题讨论】:

    标签: rvm bundler passenger


    【解决方案1】:

    你提交了你的 Gemfile.lock 吗?

    【讨论】:

    • 没有。从我的 gemfile 中删除gem 'bullet' 并重新bundleing 后,我的 gemfile 和 gemfile.lock 都回到了以前的工作状态,所以没有什么可以提交的。在整个崩溃过程中,我没有进行任何更改,而且我的工作目录很干净。因此,gem update --system 引入的任何变化都发生在我的应用程序之外。
    【解决方案2】:

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

    gem update --system 1.8.11
    

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

    【讨论】:

      【解决方案3】:

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

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 2016-09-06
        • 1970-01-01
        • 2021-04-16
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        相关资源
        最近更新 更多