【问题标题】:Bundler is ghost-bundling - it uses the gem but passenger returns a GemNotFoundErrorBundler 是幽灵捆绑 - 它使用 gem 但乘客返回 GemNotFoundError
【发布时间】:2013-03-25 21:45:56
【问题描述】:

我正在使用 Rails 2.3.11 和 Bundler 1.0.10。

乘客返回错误

Could not find addressable-2.2.4 in any of the sources (Bundler::GemNotFound)

我安装了手动可寻址 2.2.4 并将它与 gem 'addressable', '2.2.4' 捆绑在一起做了一个 bundle install 和捆绑器说 Using addressable (2.2.4)

还是有上面的错误。

我将Passenger 用作Apache2 模块。我将 RVM 与 Ruby 1.9.2 一起使用。乘客使用 1.8.7 运行。即使使用 RVM 将 Ruby 切换到 1.8.7 也不能解决问题。

【问题讨论】:

  • 乘客是否在使用您的“系统”红宝石?您是使用 rvm 还是安装了多个 ruby​​ 版本?您使用的是独立乘客还是 apache 模块?如果 apache 发布了相关配置行(在 apache2.conf 中)和“which ruby​​”的结果有更多帮助!祝你有美好的一天
  • 好吧,请确保乘客使用的是与您的默认 rvm 控制台相同的 ruby​​。看看你的 apache2 配置
  • 它现在使用相同的版本,但实际上并没有什么区别......同样的错误

标签: ruby-on-rails bundler


【解决方案1】:

正如 Zachary 所说,确保您选择了正确的 gemset,一定要运行

bundle install

在项目目录中。就我的 Padrino 项目而言,一旦我运行了 bundle,它就可以正常工作(选择了那个 gemset)。

【讨论】:

  • 我已经试过了,捆绑更新也是如此......没有区别
【解决方案2】:

如果您使用的是 RVM,那么您的项目的 gemset 很可能没有同步。

尝试做

rvm gemset list

如果您为此项目创建了一个 ruby​​ 并为它创建了一个 gemset,它将在此处列出。做

rvm gemset use nameOfGemsetForYourProject

RVM 是一个很棒的工具,但它会混淆视听,并在确保您在正确的命名空间下安装 gem 时造成一些混乱。

要检查为 gemset 安装了哪些 gem,在您对其进行“使用”后,只需键入“gem list”

【讨论】:

  • btw gem list 显示已安装 addressable-2.2.4 并且 bundler 说它会使用它
  • 对我来说,唯一可以想象到的问题原因是捆绑器安装混乱......我刚刚用 gem install bundler 安装了它,自从我实施 OmniAuth 以来它一直运行良好,在这里我的本地工作机器自动捆绑了 OmniAuth 所依赖的可寻址 gem;在我的服务器上,您会收到我上面列出的错误。
  • rvm gemset list 显示了多少个 gemset? gem list 仅列出为当前 gemset 安装的 gem。如果您使用的是 rvm,则 bundle install 将为附加到您的项目的 gemset 安装 gem。
  • 我有一个 gemset teamforger 和一个 gemset global
  • 但我想让它在不使用 gemsets 的情况下运行......只是标准捆绑包的好老方法
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 2013-12-04
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2011-04-06
  • 2023-03-28
  • 2012-12-10
相关资源
最近更新 更多