4

Я использую всякий раз, когда драгоценный камень на моем 2+-летнем разрезе на Slicehost. Однако я не могу сделать то же самое на своем новом фрагменте.Всякий раз, когда драгоценный камень не обновляет задачи crontab

Основные отличия в том, что я теперь запускаю RVM как на моем MBP, так и на срезе. Я также запускаю Rails 3. У меня есть Rubygems v 1.5.0 и последние версии RVM, Ruby 1.9.2p136, Capistrano и о каждом другом пакете.

Я пробовал миллион вещей, прочитал все документы и на данный момент я использую всякий раз, когда gem версии 0.6.2. Я также рассмотрел все вопросы по соответствующим темам на SO, а также в Google.

Вот код в deploy.rb:

namespace :deploy do 
    ... 
    desc "Update the crontab file" 
    task :update_crontab, :roles => :db do 
    run "cd #{release_path} && whenever --update-crontab #{application}" 
    end 
end 

after 'deploy:update_code', 'deploy:update_crontab' 

Вот сообщение об ошибке я получаю после запуска «шапку развернуть»

failed: "rvm_path=$HOME/.rvm/ $HOME/.rvm/bin/rvm-shell '1.9.2' -c 'cd /home/deploy/public_html/lasource/releases/20110209201551 && /home/deploy/.rvm/gems/ruby-1.9.2-p136/bin/whenever --write-crontab'" on lasource.ohlalaweb.com 

Любые предложения будут приветствоваться.

Кстати, где находятся журналы capistrano?

Добавив 'bundle exec' благодаря предложению Симоны, мне удалось завершить процедуру развертывания крышки, так как все прошло хорошо. Однако новая проблема заключается в том, что мой файл crontab все еще пуст от задач и не создал мой раздел с его 4 задачами.

ответ

10

При использовании Rails 3 не забудьте выполнить команду с bundle exec.

namespace :deploy do 
    desc "Update the crontab file" 
    task :update_crontab, :roles => :app, :except => { :no_release => true } do 
    run "cd #{release_path} && bundle exec whenever --update-crontab #{application}" 
    end 
end 
+0

Hi Simone. Я последовал твоему предложению и продвинулся дальше на один шаг. Я редактировал свой вопрос, чтобы показать новое сообщение об ошибке, которое я получил сейчас. – allesklar

+0

После нескольких настроек моя ручка заканчивается успешно. Он говорит мне, что он обновляет crontab, но ничего не происходит. crontab -e все еще показывает пустой файл. – allesklar

+2

Добавьте файл schedule.rb, чтобы мы могли проверить содержимое. –

0

Согласно когда это README-х:

If a :path is not set it will default to the directory in which whenever was executed.

Таким образом, вы не должны компакт-диск в папке. Кроме того, попытались ли вы использовать другие способы вызова команды оболочки? Я использую backticks и работает в моем env

namespace :deploy do 
    desc "Update the crontab file" 
    task update_crontab: :environment do 
    `whenever -i cellar` 
    end 
end