我已经升级到rails 3.0.9,它引入了rake问题。除了cron作业的问题外,我已经解决了这个问题。
这曾经有用:
#!/bin/sh
source /usr/local/rvm/scripts/rvm
cd /home/p1r65759/apps/abbc/
/usr/local/bin/rake refresh_events RAILS_ENV=production
但是现在我收到了这个错误: 你已经激活了rake 0.8.7,但你的Gemfile需要rake 0.9.2。考虑使用bundle exec。 / home / p1r65759 / apps / abbc / Rakefile:4:in'' (通过使用--trace运行任务查看完整跟踪)
如何修改我的脚本以使用bundle exec,以便它使用正确版本的rake并成功运行? 感谢。
答案 0 :(得分:9)
如果您正在为您的应用程序使用bundler,那么您不需要使用“/ usr / local / bin / rake”作为rake的路径。
您可以使用
bundle exec rake
所以你的新剧本将是
#!/bin/sh source /usr/local/rvm/scripts/rvm cd /home/p1r65759/apps/abbc/ bundle exec rake refresh_events RAILS_ENV=production
bundle exec将起作用,因为你已经在项目目录中了。
不要忘记在你的Gemfile中加入rake。
答案 1 :(得分:4)
而不是
/usr/local/bin/rake refresh_events RAILS_ENV=production
你应该使用
bundle exec rake refresh_events RAILS_ENV=production
或者更好的是用--binstubs:
安装你的软件包bundle install --binstubs --without development test
那么你将有bin / rake:
./bin/rake refresh_events RAILS_ENV=production