PHP 5.3.3でpear install DBを実行すると、PHP 5.4.0以上の要件を求められる問題の解決方法
正確にこの問題が発生するようになった時期はよく分からないけれど、本日、Linux(CentOS 6.7)のPHP標準パッケージ環境(PHP 5.3.3)で、「pear install DB」を実行すると、以下のようなエラーが発生することとが分かった。
WARNING: "pear/DB" is deprecated in favor of "pear/MDB2"
Failed to download pear/PEAR, latest release is version 1.10.0, but it requires PHP version "5.4.0", use "channel://pear.php.net/PEAR-1.10.0" to install
pear/DB requires package "pear/PEAR" (version >= 1.10.0), installed version is 1.9.4
No valid packages found
install failed
どうやら、pear install DBを実行するには、PHP PHP 5.3.3では古いらしく、PHP 5.4.0が必要とのこと。(英文の直訳だと5.4.0のバージョンだけが指定されているが、たぶん、5.4.0以上のバージョン、という意味であろう。)
PHP 5.3.3のバージョンを5.4.0以上にすれば問題が解決しそうであるが、それはしたくなかったので、既にPEAR DBインストール済の他の環境で、PEARのインストール状況を見て考えてみる。
《PEAR DBインストール済の他の環境(CentOS 6.7)でのPEARのインストール状況》
# pear list
Installed packages, channel pear.php.net:
=========================================
Package Version State
Archive_Tar 1.3.7 stable
Console_Getopt 1.2.3 stable
DB 1.8.2 stable
PEAR 1.9.4 stable
Structures_Graph 1.0.4 stable
XML_RPC 1.5.4 stable
XML_Util 1.2.1 stable
PEAR DBのバージョンが1.8.2という点に注目した。
そして、久々にPEARのサイトを訪問して解決策がないかを見てみた。
「Package Information: DB」
http://pear.php.net/package/DB/
サイトには、以下の記述があった。
Current Release
1.9.2 (stable) was released on 2015-11-24
Easy Install
pear install DB
どうやら、「pear install DB」を実行すると、昨年(2015年)の11月24日以降は、PEAR 1.9.2がインストールされるようになったようだ。
このバージョンが、PHP 5.3.3には対応していないので、PHP 5.4.0という要件が出ているのだろう。
(しかし、PEAR DB 1.9.2のPHPの要件を見ると、「PHP Version: PHP 5.0.0 or newer」となっているので、PHP 5.3.3で使えてもよさそうである。サイトの記述が誤っているのかもしれない。)
さて、PEAR DBのインストールが失敗する問題を解決するには、同じLinux OS(CentOS 6.7)で同じPHP 5.3.3で既にPEAR DBがインストールされている環境では、1.9.2よりも古いバージョン「DB 1.8.2」がインストールされていたことを考えると、1.9.2ではなく、1.8.2を指定してインストールすればいいのではないかと思った。
同じPEARのサイトを確認すると、1.8.2のダウンロードページがあった。
「Package Information: DB 1.8.2」
http://pear.php.net/package/DB/download/1.8.2
Easy Install
pear install DB-1.8.2
「pear install DB」の代わりに、「pear install DB-1.8.2」をLinuxのコマンドラインで実行すると、無事にPEAR DBのインストールが完了した。