我希望调用 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 已经过时了。我尝试 bundle exec rake _0.9.2.2_ [my_task]
在cron作业中使用,但出现了同样的错误
我尝试了任何时候的宝石;这产生了确切的错误。
所以我想我有两个问题:
- 如何让 cron 使用正确的 rake 版本?和
- 如何将它指向已经在供应商/捆绑包或供应商/缓存中的 gem?
请注意,该站点在部署在 Phusion Passenger 中时有效。