0

このcapistranoタスクを実行するとこのエラーが発生します(私自身-cap deploy:show_pointers):

  * executing `deploy:show_pointers'
  * executing "cd /home/mydomain/public_html/site_folders/rails/current; rake app:show_pointers"
    servers: ["mydomain.net"]
    [mydomain.net] executing command
 ** [out :: mydomain.net] (in /home/mydomain/public_html/site_folders/rails/releases/20120521025150)
 ** [out :: mydomain.net] Could not find rake-0.9.2 in any of the sources
 ** [out :: mydomain.net] Try running `bundle install`.
    command finished in 1584ms
failed: "sh -c 'cd /home/mydomain/public_html/site_folders/rails/current; rake app:show_pointers'" on mydomain.net

しかし、私が実行すると

sh -c 'cd /home/mydomain/public_html/site_folders/rails/current; rake app:show_pointers

capistranoがログインするのと同じディレクトリから手動で動作します。capistranoをsudoを使用しないように設定しているので、問題にはならないはずですが、上記のコマンドがsudoで失敗するため、問題になる可能性があります。これはユーザーの問題か、環境変数の問題だと思います。または私は何がわからない。

任意の提案。これはすでにrakeタスクであるタスクですが、実行するたびにサーバーにログインする必要がないようにするのに役立ちます(さらに約10個のタスクが好きです)。

これに関する助けに感謝します。

4

3 に答える 3

3

capistranoがログインするのと同じディレクトリから手動で動作します。

それは何も言いません、Capistranoは非ログインttyを作成します。これは、プロファイル、ドットファイルなどが実行されないことを意味します。

ssh root@example.de -t /bin/sh

これは、環境をCapistranoと比較するためのより信頼性の高い方法です(ただし、これでもCapistranoが使用しているものよりも少しフル機能です。

于 2012-05-21T06:44:19.493 に答える
0

これらのエラーメッセージを考えると、私にはいくつかのアイデアがあります。

** [out :: mydomain.net] Could not find rake-0.9.2 in any of the sources
** [out :: mydomain.net] Try running `bundle install`.

アプリがrakeコマンドを見つけることができません。bundle install推奨事項としてリモートマシンで実行しようとしましたか?

別のオプションは、コマンドを次のように変更することです。

cd /home/mydomain/public_html/site_folders/rails/current; bundle exec rake app:show_pointers

bundle execリモートサーバーのruby環境によっては、コマンドの前に使用することをお勧めします。

于 2012-05-21T03:12:55.763 に答える
0

スタックオーバーフローの@dbraoverは、レーキするためのフルパスが必要であることを指摘しています。

于 2012-05-22T00:55:19.777 に答える