我有Rake版本0.9.1但我需要使用0.8.7进行项目,我相当确定我已经安装了两个版本,但它默认使用0.9.1。有没有办法指定使用哪个版本的Rake?
我正在尝试运行它:rake db:drop db:create db:migrate db:seed 我收到此错误: 你已经激活了rake 0.9.1,但你的Gemfile需要rake 0.8.7。考虑使用bundle exec。
答案 0 :(得分:25)
gem search(或list)rake,应该告诉你安装了哪些版本。
您可以使用括号中的特定版本号调用rake 下划线。
$rake _0.7.3_
这是gem打包二进制文件的标准功能。
答案 1 :(得分:18)
您可以在Gemfile中指定要使用的Rake版本:
gem 'rake', '0.8.7'
虽然您收到的“错误”消息说明了所有内容......但您需要运行:
bundle exec rake ...
...为了使用正确的佣金来运行佣金任务。
有关bundle exec
的更多信息:http://gembundler.com/man/bundle-exec.1.html
答案 2 :(得分:8)
尝试执行gem uninstall rake
,然后选择要卸载的版本。
答案 3 :(得分:3)
这是因为您正在使用系统中的 rake 。 (默认为最新版本) 解决方案是使用以下命令:
bundle exec rake db:migrate
此外,您还可以创建别名。因为这个命令太大而且难以编写。
echo "alias be='bundle exec'" >> ~/.bash_profile
source ~/.bash_profile
然后你可以使用follow short命令:
be rake db:migrate