root権のない一般ユーザーでも開発環境でCI(Jenkins/PHPUnit/Phing)してみたい (中編)

前回の続き、pearPHPUnitインストールなど。

自分用pearの準備

pear自体はPHPについてくるので誰でもつかえると思うんですが、インストール先が/usr/local/phpとかだったり、そもそもpearが古かったりするので自分用のを入れましょう。

.pearrcの生成

/home/calpo/pear に自分用のpearを置くとすると、以下のようにします。

$ cd ~/
$ pear config-create /home/calpo/share .pearrc
Configuration (channel pear.php.net):
=====================================
Auto-discover new Channels     auto_discover    <not set>
Default Channel                default_channel  pear.php.net
HTTP Proxy Server Address      http_proxy       <not set>
PEAR server [DEPRECATED]       master_server    <not set>
Default Channel Mirror         preferred_mirror <not set>
Remote Configuration File      remote_config    <not set>
PEAR executables directory     bin_dir          /home/calpo/share/pear
PEAR documentation directory   doc_dir          /home/calpo/share/pear/docs
PHP extension directory        ext_dir          /home/calpo/share/pear/ext
PEAR directory                 php_dir          /home/calpo/share/pear/php
 ・
 ・

.pearrcには自分用pearの設定が保存され、↑で出力された内容は"pear config-show"でいつでも確認できます。

自分用pear本体のインストール
$ pear install -o PEAR
WARNING: channel "pear.php.net" has updated its protocols, use "pear channel-update pear.php.net" to update
downloading PEAR-1.9.4.tgz ...
 ・
 ・
PEAR: To install optional features use "pear install pear/PEAR#featurename"

自分用pearが/home/calpo/share/pear/pearにできました。

pearコマンドが自分用pearを指すようにする

ただそのままだと結局共有pearを見に行っているので・・・

$ which pear
/usr/bin/pear

~/.bashrcあたりにパスを追加

export PATH=/home/calpo/share/pear:${PATH}
# aliasでもいいかも?
# alias pear ~/share/pear/pear
$ which pear
~/share/pear/pear

PHPUnitインストール

チャンネル追加してインストール
$ pear channel-discover pear.phpunit.de
$ pear channel-discover components.ez.no
$ pear channel-discover pear.symfony-project.com
$ pear install phpunit/PHPUnit

Did not download optional dependencies: ezc/ConsoleTools, use --alldeps to download automatically
Failed to download pear/HTTP_Request2 within preferred state "stable", latest release is version 2.0.0RC1, stability "beta", use "channel://pear.php.net/HTTP_Request2-2.0.0RC1" to install
phpunit/PHPUnit can optionally use PHP extension "dbus"
pear/XML_RPC2 requires package "pear/HTTP_Request2" (version >= 0.6.0)
phpunit/PHPUnit requires package "pear/XML_RPC2"

文句言われた

一個ずつ足りないものを入れようとするとさらに文句言われたりしたので最終的に↓のようにやった

$ pear install channel://pear.php.net/Net_URL2-0.3.1
$ pear install channel://pear.php.net/HTTP_Request2-2.0.0RC1
$ pear install pear/XML_RPC2
$ pear install phpunit/PHPUnit
$ phpunit -v
PHPUnit 3.5.3 by Sebastian Bergmann.

これでやっと入る

curl関連でけちが付いた場合は → http://lazesoftware.com/blog/11/0213/

Phingインストール

pearでさっくり
$ pear channel-discover pear.phing.info
$ pear install phing/phing
$ phing -v
PHP Warning:  require_once(phing/Project.php): failed to open stream: No such file or directory in /home/calpo/share/pear/php/phing/Phing.php on line 22

インストールはWarningでつつも無事終わるが動かない。

PHPのinclude_pathが通ってないので通す

通常のpearインストールディレクトリは自動的にinclude_pathに含まれるようになってるんですが、今回は自分用なので自分でinclude_pathを設定する必要があります。
share/pear/php/phing.php の最初の方に↓を追加

<?php
ini_set('include_path', ini_get('include_path').':'.dirname(__FILE__));
 ・
 ・

(本当はphp.iniに書いたりphpコマンド実行時に-dオプション指定したりしたいけど)

./phing -v
Phing 2.4.6

完了。