我正在设置cron以在Rails服务器上为我的红宝石运行一些rake任务。它们由任何时候生成,如下所示:
* * * * * /bin/bash -l -c 'cd /var/www && RAILS_ENV=production /usr/local/bin/bundle exec /usr/local/bin/rake my:task --silent >> /var/www/log/cron.log 2>&1'
bundle
和rake
可执行文件似乎被找到,但是在cron.log中我发现此错误:
bundler: failed to load command: /usr/local/bin/rake (/usr/local/bin/rake)
Bundler::GemNotFound: Could not find rake-12.3.2 in any of the sources
/usr/local/lib/ruby/gems/2.5.0/gems/bundler-1.16.6/lib/bundler/spec_set.rb:91:in `block in materialize'
...
...
正如我所看到的,它试图从/usr/local/lib/ruby/gems/2.5.0/gems
(不是正确的路径)中加载rake-12.3.2,这是正确的版本,因为没有rake-12.3.2。正确版本的rake在另一个路径/usr/local/bundle/gems
下,但是我没有为cron设置此路径的使用。
我尝试将GEM_PATH="/usr/local/bundle/gems"
添加到cron文件中,但是它不起作用。
我不使用rvm或rbenv,直接安装了ruby。