每当我运行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
。
我已经查看了其他类似错误的问题,并尝试了各种解决方案(如运行bundle update
)无济于事。
另外,在gemfile
我指定的gem 'rake', '0.9.2'
有什么建议吗?
答案 0 :(得分:8)
尝试执行:
gem list
您可能会看到为rake安装了几个版本。顺便说一下,bundle exec
是在rails应用程序的上下文中执行代码的正确方式,请参阅this以获得一个很好的解释。因此,您可以使用别名来输入less。
答案 1 :(得分:2)
如果您使用rvm。你可以试试
rvm gem list
答案 2 :(得分: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
答案 3 :(得分:0)
如果gemfile中的某些gem需要较旧版本的Rake到您安装的版本,则可能会看到此消息。也许你已经更新了rake。您通常可以通过更新宝石来修复它。运行:
bundle update
这将使用gemfile中最新的gem更新您的包。这可能会解决耙子不兼容问题。