【发布时间】:2012-12-22 04:49:19
【问题描述】:
我希望调用 rake 任务的 cron 作业使用安装在 [rails_app]/vendor/bundle 或 [rails_app]/vendor/cache 中的 gem。目前,我的系统 gem 已经过时了,但由于我无法控制的各种原因,我无法更新它们。
我尝试使用bundle exec,但这似乎不起作用。我得到的错误是
usr/local/lib/ruby/gems/1.9.1/gems/bundler-1.0.18/lib/bundler/spec_set.rb:88:in 'materialize': 找不到 rake-0.9.2.2来源 (Bundler::GemNotFound)
我相信这是因为我的系统的 rake 已过时。我尝试在cron作业中使用bundle exec rake _0.9.2.2_ [my_task],但出现了同样的错误
我尝试了whenever gem;这产生了确切的错误。
所以我想我有两个问题:
- 如何让 cron 使用正确的 rake 版本?并且
- 如何将其指向已在供应商/捆绑包或供应商/缓存中的 gem?
请注意,该站点在部署在 Phusion Passenger 中时可以正常工作。
【问题讨论】:
-
是的,我这样做了,但没有成功。我的命令是
cd /home/[rails_app] && RAILS_ENV=production bundle exec rake _0.9.2.2_ [my_task]
标签: ruby-on-rails cron rake bundler