【问题标题】:Confused with rake error in Rails 3对 Rails 3 中的 rake 错误感到困惑
【发布时间】:2011-06-01 17:36:44
【问题描述】:

Noob 试图破译如何处理以下错误:

rake 中止! 您已经激活了 rake 0.9.1,但您的 Gemfile 需要 rake 0.8.7。考虑使用 bundle exec。

非常感谢任何帮助。

【问题讨论】:

标签: ruby-on-rails-3 rake


【解决方案1】:

尝试运行bundle exec rake 而不仅仅是rake。当您的计算机上安装的 rake 版本比 Gemfile(或 Gemfile.lock)中指定的版本更新时,会发生此错误

【讨论】:

  • bingo... gemfile.lock 确实包含旧版本。我应该简单地更改文件以反映较新的版本。这将避免必须运行 bundle exec... 对吗?
  • 运行bundle update,它会为您完成。 bundle update 将 Gemfile.lock 中的所有 gem 版本更新到最新版本。
  • 您的 Gemfile.lock 可能包含旧版本,因为您的其中一个 gem 需要该特定版本。
  • @Jist:这是可能的,但运行 bundle update 也会将该 gem 更新到最新版本,这可能会也可能不会解决这个问题。如果没有,那么您可以使用 gem uninstall rake -v 0.9.1 卸载较新版本的 rake
  • @chris 从不手动修改 Gemfile.lock。您可以并且应该不时运行bundle update 来更新所有已安装的gem。请确保您已准备好一个良好的测试套件,然后在进行更新后完整运行它。您可能会惊讶于有多少 gem 更新包含会破坏您的代码的更改。
【解决方案2】:

这对我有用:

  1. 将 rake 0.8.7 添加到您的 Gemfile

    gem 'rake', '0.8.7'
    
  2. 通过执行删除 rake 0.9.1

    gem uninstall rake -v=0.9.1
    
  3. 在终端上运行包更新

    bundle update
    

希望对您有所帮助。 谢谢

安东尼奥

【讨论】:

    【解决方案3】:

    你有没有...

    gem 'rake', '0.8.7'
    

    ...在你的Gemfile?

    如果是这样,请将其删除。

    【讨论】:

    • 我的 gemfile 中没有这个。这是我检查的第一件事。
    • 我的 gemfile 包含:gem 'rails', '3.0.6';宝石'sqlite3'; gem "will_paginate", "~> 3.0.pre2" AND gem 'mysql'
    • 好的。在我看来,这听起来像是 Gemfile 中 gem 的依赖项之间的冲突。另一种方法是在 Gemfile 中将 rake 版本锁定为 0.9.1。
    【解决方案4】:

    此错误是由于在您的系统上安装了 rake 0.9.1 但您的 rake 文件指定了 0.8.7。您可以通过bundle exec rake 使用 rake 0.8.7 或更改您需要的 rake 版本。

    【讨论】:

      【解决方案5】:
      bundle update rake
      

      对我来说很好用:D

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 2017-12-13
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2013-06-02
        • 1970-01-01
        • 2012-05-21
        • 2017-07-31
        相关资源
        最近更新 更多