虚苦心観察ブログ

ブログ管理者である虚苦心が私利私欲に基づいて書いているブログです。主にガジェットのレビューだったり、画像処理のことだったりを記事にしています。

PHPUnitのインストール

自分の開発環境はCentOSサーバーを使っている。
1年前くらいに作ったのだが、あまりメンテナンスとかしてなかった。
というか、家の中でDLNAつかって動画・音楽を垂れ流しがメインなのでそうする必要がなかったのです。

しかし、友達となにかつくろうぜ!ってなってPHPを書くことになったのだけど、だったらちゃんとした開発を学ぶためにテストというものを実践しようじゃないか!と自分の中でなった。

で、PHPでテストというとPHPUnitというのが有名。
これをインストール仕様としたのだが、PHPUnitの前にPearで若干挫折仕掛けた。
なので解決方法を書いておく。

まずはPearをアップグレードしなければならないのだけど、PHPUnitの最新版を入れようと本家のサイトを参考にしても出来なかった。
原因はPearのバージョンにある、ということだったはず(1ヶ月くらい前の話なので忘れた)。

で、Pearをバージョンアップしようとしたら怒られた。
たしか依存しているパッケージが非推奨だからとかでインストールされず、他のパッケージがインストール出来なかったのだ。

$ sudo pear upgrade PEAR
PHP Warning: PHP Startup: Unable to load dynamic library '/usr/lib/php/modules/oauth.so' - /usr/lib/php/modules/oauth.so: undefined symbol: php_pcre_match_impl in Unknown on line 0
PHP Warning: PHP Startup: Unable to load dynamic library '/usr/lib/php/modules/oauth.so' - /usr/lib/php/modules/oauth.so: undefined symbol: php_pcre_match_impl in Unknown on line 0
pear/PEAR dependency package "pear/Console_Getopt" downloaded version 1.3.1 is not the recommended version 1.2.3, but may be compatible, use --force to install
pear/Archive_Tar requires PEAR Installer (version >= 1.5.4), installed version is 1.4.9
pear/Console_Getopt requires PEAR Installer (version >= 1.8.0), installed version is 1.4.9No valid packages foundupgrade failed

で、今になって見返してみたら、--forceを付ければ無理やりだけどインストール出来ます、という注意書きが。
そういうわけで、--forceを付けてアップグレードを行った。

そしたらすんなりインストールされ、PHPUnitの最新版もすんなりインストールされた。

]$ sudo pear upgrade --force PEAR
PHP Warning: PHP Startup: Unable to load dynamic library '/usr/lib/php/modules/oauth.so' - /usr/lib/php/modules/oauth.so: undefined symbol: php_pcre_match_impl in Unknown on line 0
PHP Warning: PHP Startup: Unable to load dynamic library '/usr/lib/php/modules/oauth.so' - /usr/lib/php/modules/oauth.so: undefined symbol: php_pcre_match_impl in Unknown on line 0
warning: pear/PEAR dependency package "pear/Console_Getopt" downloaded version 1.3.1 is not the recommended version 1.2.3
warning: pear/Archive_Tar requires PEAR Installer (version >= 1.5.4), installed version is 1.4.9
warning: pear/Console_Getopt requires PEAR Installer (version >= 1.8.0), installed version is 1.4.9
downloading PEAR-1.9.4.tgz ...
Starting to download PEAR-1.9.4.tgz (296,332 bytes)
...........................................done: 296,332 bytes
downloading Archive_Tar-1.3.9.tgz ...
Starting to download Archive_Tar-1.3.9.tgz (18,123 bytes)
...done: 18,123 bytes
downloading Console_Getopt-1.3.1.tgz ...
Starting to download Console_Getopt-1.3.1.tgz (4,471 bytes)
...done: 4,471 bytes
upgrade ok: channel://pear.php.net/Console_Getopt-1.3.1
upgrade ok: channel://pear.php.net/Archive_Tar-1.3.9
upgrade ok: channel://pear.php.net/PEAR-1.9.4
PEAR: Optional feature webinstaller available (PEAR's web-based installer)
PEAR: Optional feature gtkinstaller available (PEAR's PHP-GTK-based installer)
PEAR: Optional feature gtk2installer available (PEAR's PHP-GTK2-based installer)
To install use "pear install pear/PEAR#featurename"

エラー文ってちゃんと読まなきゃダメですねっていう教訓でした。
おそらく--forceを使わずに非推奨だったバージョンのパッケージだけバージョン指定すれば問題なくインストール出来たのだと思われますが、まぁ動いているのでいいでしょう。