プロが教える店舗&オフィスのセキュリティ対策術

hudsonで「Hudson Phing plugin」しビルド時にphingを実行するようにしているのですが、
実行させると下記のエラーとなります。
実行したビルドの、「コンソール出力」で確認しました。



--------------------------------------------------------------------------------------
[hudsonsMyTest] $ phing -buildfile build.xml test -logger phing.listener.DefaultLogger
FATAL: Phingの実行に失敗しました。インストールしたPhingのいずれ1つを使用してジョブを設定する必要があるかもしれません。
java.io.IOException: Cannot run program "phing" (in directory "/var/lib/hudson/jobs/myFookSVN/workspace/hudsonsMyTest"): java.io.IOException: error=2, No such file or directory
--------------------------------------------------------------------------------------
実際にログインして自分でphingコマンドを叩くと正常に終了します。
hudsonからの実行だと下記エラーになってしまいます。(phingが失敗するというより、phingが実行できていない?)

ユーザーanonymousが実行していて、パスなどが通っていない事や権限の問題も考えたのですが、ビルド時の実行ユーザの設定方法が見つかりませんでした。

ユーザの設定方法、または他の原因など何か考えられるものがあれば教えてください。

A 回答 (2件)

実行PATHに含まれていれば PHING_HOME を指定しなくても大丈夫みたいです。


なので、僕は「Hudsonの管理」→「システム設定」のPhing は設定してません。

テストを実行すると
[test] $ phing -buildfile build.xml spec -logger phing.listener.NoBannerLogger
Buildfile: /xxx/xxxx/xxx/build.xml

のように Hudson のコンソールシステムメニューに出力されてます。

どちらの方法でも良いはずなので、

> 「/usr/local/php-5.3.4/bin/phingが存在しません。」
> とエラーが出てしまいます。

この問題を解決する必要があるようですね。

PHING_HOME を設定する箇所の(?)アイコンからたどれる phing のサイトを見てみると、
PHING_HOME ディレクトリには classes と bin ディレクトリがあることが期待されているようです。

${PHING_HOME}/bin/phing.php を実行するようなので、/usr/local/php-5.3.4/bin/phing.php が存在するのでしたら、PHING_HOMEには /usr/local/php-5.3.4 を指定してみてはどうでしょうか?

Full Phing Package 版の phing を展開したときのディレクトリ構成を想定しているようですね。
    • good
    • 0
この回答へのお礼

>${PHING_HOME}/bin/phing.php を実行するようなので、/usr/local/php-5.3.4/bin/phing.php が存在するのでしたら、PHING_HOMEには /usr/local/php-5.3.4 を指定してみてはどうでしょうか?

PHING_HOMEに/usr/local/php-5.3.4を指定することはできませんでした。
また、classesとbinディレクトリが存在するようなphing関連のディレクトリも見つかりませんでした。
ただ、ご指摘いただいたようにPATHの問題だと思い、hudsonを実行しているhudsonユーザにログインシェルで必要なPATHを読み込むようにしたら正常に実行することができました。
(rpmインストールで勝手に作られたユーザだったのでちょっと無理やりな気もしますが・・)
おかげさまで実行可能になりました。ありがとうございました。

お礼日時:2011/02/21 09:32

redmine と連携して同様のこと実践してます。



> 実際にログインして自分でphingコマンドを叩くと正常に終了します。
このユーザと、hudson のプロセスのユーザは同じなのでしょうか?
そうでないと検証として不十分じゃないかと思いまして。

「Hudsonの管理」→「システム情報」の画面で環境変数PATHにphing のあるPATHはありますか?

この回答への補足

環境PATHとは
Phing > インストール済みPhing > PHING_HOME のことだと思うのですが、
ここに下記のphing実行PATH、
/usr/local/php-5.3.4/bin/phing
のように入れると、
「/usr/local/php-5.3.4/bin/phingが存在しません。」
とエラーが出てしまいます。
(/usr/local/php-5.3.4/bin/と1つ上のディレクトリにしても同じでした・・)
入れようとしているものが違うのでしょうか?

まだ、hudsonプロセスのユーザは「hudson」なのですが、このユーザはhudsonサーバ用のみに作られたもので、ログインしてsu - hudsonをする事ができません(何か思い違いをしているのでしょうか・・)

補足日時:2011/02/19 13:36
    • good
    • 0

お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!