15

每当我运行 rake 命令(即rake routes)时,我都会收到此错误:

You have already activated rake 0.9.2.2, but your Gemfile requires rake 0.9.2. Using bundle exec may solve this.

如果我运行bundle exec rake routes它可以工作。

我希望能够简单地rake routes无需运行bundle exec rake routes.

我查看了其他具有类似错误的问题,并尝试了各种解决方案(如 running bundle update),但均无济于事。

另外,在我gemfile指定的gem 'rake', '0.9.2'

有什么建议么?

4

4 回答 4

8

尝试执行:

gem list

您可能会看到为 rake 安装了几个版本。顺便说一句,bundle exec这是在Rails 应用程序上下文中执行代码的正确方法。因此,您可以使用别名来减少输入。

于 2011-11-12T17:20:45.230 回答
2

如果您使用 rvm。您可以尝试以下

rvm gem list
于 2012-03-04T06:50:25.160 回答
2

正如@lucapette 所说,您可能有多个版本的 rake。假设您确实想使用 0.9.2,您可以删除 0.9.2.2 版本以消除警告,然后运行 ​​bundle install 以确保您拥有所需版本的所有正确 gem 版本(在您的情况下为 0.9.2, 0.8.7 在下面的示例中)。

以下是步骤:

$ gem list

*** LOCAL GEMS ***

...
rake (0.9.2.2, 0.8.7)
...

$ gem uninstall rake

Select gem to uninstall:
 1. rake-0.8.7
 2. rake-0.9.2.2
 3. All versions
> 2

You have requested to uninstall the gem:
        rake-0.9.2.2
addressable-2.2.6 depends on [rake (>= 0.7.3)]
...
If you remove this gems, one or more dependencies will not be met.
Continue with Uninstall? [Yn]  Y
Successfully uninstalled rake-0.9.2.2
INFO:  gem "0.9.2.2" is not installed

$ bundle install
于 2012-04-18T12:01:01.767 回答
0

如果您的 gemfile 中的某些 gem 需要您安装的 Rake 的旧版本,您可能会看到此消息。也许你已经更新了 rake。您通常可以通过更新 gem 来修复它。跑:

bundle update

这将使用 gemfile 中最新的 gem 更新你的包。这可能会解决 rake 不兼容的问题。

于 2012-10-02T16:27:10.183 回答