Для деплоя своих проектов на Rails я использую третью версию Capistrano. На серверах я использую rvm для установки ruby и на локалке использую следующий набор гемов:
И тут два дня назад деплой ломается одновременно на обоих моих проектах. На попытке сделать assets:precompile вылетает такая ошибка:
12345678
DEBUG [6c391f27] Command: cd /var/www/apps/aliya/releases/20140108194955 && ( RAILS_ENV=production bundle exec rake assets:precompile )
DEBUG [6c391f27] bash: bundle: command not found
cap aborted!
rake stdout: Nothing written
rake stderr: Nothing written
Tasks: TOP => deploy:assets:precompile
(See full trace by running task with --trace)
Я связал это с выходом новой версии ruby (2.1) и решил прописать в deploy.rb нужную версию:
Но это не помогло. Тогда я прописал в тот же файл значение переменной $PATH. Для этого заходим по SSH на сервер, выполняем echo $PATH и прописываем его на локалке:
P.S. Самое интересное, что если прописать $PATH, но не указывать версию ruby, то все равно получаем ошибку, но уже раньше, на bundle install
1234567
cap aborted!
bundle stdout: Nothing written
bundle stderr: Nothing written
Tasks: TOP => deploy:updated => bundler:install
(See full trace by running task with --trace)
DEBUG [c90cd2c7] /home/deployer/.rvm/scripts/set: line 19: exec: bundle: not found