EL3 が php4 × PostgreSQL7 なのは承知していたものの、 EL4 なら php5 が入っているとなぜか完全に思い込んでいた。でも実際フタを開けてみると
php4 × PostgreSQL7 でかなり想定外の展開に(単に、ちゃんと確認しとけよという話なのですが)。一瞬冷や汗ものだったものの、以下の方法で rpm をでっち上げて無事クリアー。
CentOS の rpm がそのままそっくり使えるという期待もあったのですが、この時点で最新の php-5.1.6-1.2.1.centos.src.rpm だと PostgreSQL 7 とセットでビルドされちゃってるっぽかった(あるいは単にライブラリのファイル名の問題?)。
まずははじめから入っている php4 と postgresql 関連の rpm を全て削除。依存があるとか言われても強い意志を持ってとにかく削除。
[PostgresSQL編]
ftp://ftp.postgresql.org/pub/binary/v8.1.5/linux/rpms/redhat/rhel-es-4
から必要な rpm を持ってきてインストールするだけ。
[PHP編]
とりあえずそのまま使えそうな CentOS 用の SRPM を持ってくる
wget http://mirror.centos.org/centos/4/centosplus/i386/SRPMS/php-5.1.6-1.2.1.centos.src.rpm
そしてインストール。
rpm -i php-5.1.6-1.2.1.centos.src.rpm
/usr/src/redhat/SPECS/ で
rpmbuild -bb php.spec
とやってみると、ビルドに必要なものが色々ないよと怒られるので up2date または、up2date でインストールできないもの(自分の場合は sqlite, sqlite-devel)
は http://rpm.pbone.net/ あたりから探し出してインストールする。
それが済んだら改めまして
rpmbuild -bb php.spec
すると、/usr/src/redhat/RPM/i386 に rpm が色々できるので、
これらを、http://mirror.centos.org/centos/4/centosplus/i386/RPMS/ あたりからとってきた
php-pear-1.4.9-1.2.centos.noarch.rpm と一緒にインストールすればできあがり。
※ php.spec を少し書き換えて RHEL4 用の rpm ですよということにすれば尚よし。
それにしても RHEL4 よ、php4 なのはともかくとしても(これも個人的には Agavi 使うのでありえないのだけど世の中的にはまだまだ php4 らしいので)、PostgreSQL が 7系なのはどうかと思うよ。サポート面倒くさいからひたすら枯れたものしか使わないってことなのだろうか。