Я настраиваю 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 устанавливается напрямую.