在cron中运行bundle exec rake找不到特定版本的rake

时间:2019-05-27 09:36:40

标签: ruby ubuntu cron rubygems

我正在设置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'

bundlerake可执行文件似乎被找到,但是在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。

0 个答案:

没有答案