Запущенный пакетный exec rake внутри cron не может найти конкретную версию rake - PullRequest
1 голос
/ 27 мая 2019

Я настраиваю cron для запуска некоторых задач rake для моего ruby ​​на сервере rails. Они генерируются когда угодно и выглядят так: * * * * * /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'
...
...

Как я вижу, он пытался загрузить rake-12.3.2, которая является правильной версией, из /usr/local/lib/ruby/gems/2.5.0/gems, которая не является правильным путем, потому что нет rake-12.3.2. Правильная версия рейка находится под другим путем /usr/local/bundle/gems, но мне не повезло, установив этот путь для использования cron.

Я пытался добавить GEM_PATH="/usr/local/bundle/gems" в файл cron, но он не работает.

Я не использую rvm или rbenv, ruby ​​устанавливается напрямую.

...