4

私は、Slicehost の 2 年以上前のスライスで、everyone ジェムを使用しています。ただし、新しいスライスで同じことを行うことはできません。

主な違いは、MBP とスライスの両方で RVM を実行していることです。Rails 3 も実行しています。Rubygems v 1.5.0 と RVM の最新バージョン、Ruby 1.9.2p136、Capistrano、およびそこにある他のすべてのパッケージがあります。

私は何百万ものことを試し、すべてのドキュメントを読みました。今のところ、everything 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'

これは、「cap deploy」を実行した後に表示されるエラー メッセージです。

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

どんな提案でも大歓迎です。

ところで、カピストラーノのログはどこにありますか?

Simone の提案のおかげで「bundle exec」を追加したので、すべてがうまくいったので、cap deploy ルーチンを完了することができました。ただし、新しい問題は、crontab ファイルにまだタスクがなく、4 つのタスクを含むセクションが作成されていないことです。

4

2 に答える 2

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
于 2011-02-09T21:46:28.363 に答える