运行rake
时,我收到以下错误:
你已经激活了rake 0.9.2,但是你的Gemfile需要rake 0.8.7。考虑使用捆绑包exec。
使用bundle exec rake
而不只是rake
似乎是可行的,但这是解决这个问题的最好方法吗?
发布于 2011-06-18 08:42:23
使用bundle exec
是实现此目的的正确方法。
基本上,您已经将rake更新到0.9.2,这与Gemfile中指定的版本冲突。之前最新版本的rake
与Gemfile中的版本相匹配,因此在简单使用rake
时不会收到任何警告。
Yehuda Katz (最初的Bundler开发者之一)用this blog post解释了这一切。
为了避免总是键入bundle exec ...
,您可以在shell中为经常用于Bundler的命令设置一个别名或函数。例如,这是我在Rake中使用的:
$ type bake
bake is a function
bake ()
{
bundle exec rake "$@"
}
发布于 2018-05-26 19:47:49
试试bundle clean --force
它会删除不在此包中的所有系统gem
发布于 2011-06-12 03:19:45
上一次发生在我身上的时候,我已经更新了所有的gems。我做了一个gem uninstall rake
,它列出了版本选项。我选择了较新的版本,这样我就不再需要使用bundle exec
了。
基本上,如果你使用bundle exec
,它使用你的包安装的任何gem版本,那么Gemfile中有什么。如果没有bundle exec
,它将使用您的系统默认版本。
https://stackoverflow.com/questions/6317980
复制相似问题