Я настроил проект rails для использования драгоценного камня Whenever. Теперь я развертываю свой проект с помощью Capistrano, и задачи хорошо добавляются в список crontab. Но когда я вижу только одну строку:
/bin/bash: bundle: command not found
Итак, я прочитал пару статей в Интернете, поэтому я добавил это поверх моего файла schedule.rb.
env 'PATH', ENV['PATH']
Таким образом, вы должны думать, что проблема решена, потому что это добавит следующую строку в crontab:
PATH=/var/rails/alfa_paints/shared/bundle/ruby/1.9.1/bin:/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin:/usr/games
Таким образом, вы должны думать, что пакет находится в пути, когда команда выполняется. Но все равно не повезло. Я выполнил команду и развертывание с отдельным пользователем. Итак, чтобы убедиться, что все работает с этим пользователем, в данном случае это deployer. Я взял на себя роль развертывателя и выполнил команду, указанную в crontab. У меня не возникло никаких проблем при выполнении этой команды.
У меня заканчиваются варианты, и мне было интересно, сталкивался ли кто-нибудь еще с таким странным поведением? Я надеюсь на какой-нибудь совет. Это вывод в моем crontab:
# Begin Whenever generated tasks for: alfa_paints
PATH=/var/rails/alfa_paints/shared/bundle/ruby/1.9.1/bin:/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin:/usr/games
0 1 * * * /bin/bash -l -c 'cd /var/rails/alfa_paints/releases/20130127192223 && RAILS_ENV=production bundle exec rake alfa:cleanup --silent >> /var/rails/alfa_paints/shared/log/whenever.log 2>&1'
# End Whenever generated tasks for: alfa_paints
Приветствуется любая помощь!
bundle
установлена в вашей системе в одном из каталогов, перечисленных в вашей переменнойPATH
? Каков результатwhich bundle
? - person Stuart M   schedule 10.02.2013which bindle
возвращает: /usr/local/bin/bundle. Если вы посмотрите на ПУТЬ, указанный выше, вы увидите включенный /usr/local/bin. И когда я запускаю команду exec пакета, она работает на этой машине. - person Niels   schedule 16.02.2013