MacPortsでphp5-mysqlがインストールできない問題の解決方法

HDDの容量がのこり僅かとなってしまっていたので,最近クリーンインストールをしました.MacPorts経由でインストールした開発環境はバックアップが取れなかったので,開発環境を構築しようとコマンドを叩いていると,PHPMySQL Extensionをインストールするphp5-mysql packageがインストールできなかったため,その解決方法を探しました.


参考:
#26000 (php5-mysql 5.3.2 doesn't build with php5 5.3.3) – MacPorts
howto/InstallingOlderPort – MacPorts


この問題はMacPorts上のPHPのバージョンが@5.3.2から@5.3.3に上ったことで生じたようです.そのため,@5.3.2のPHPをインストールすることで解決することができました.


解決方法の概略は以下の通りです.
1. 過去のリビジョンからPHP5 @5.3.2のデータをcheckoutしてきます
2. ports directoryのバックアップを取ります
3. checkoutしたデータでports directoryを上書きします
4. PHP5をインストールします
5. php5-mysqlをインストールします

注意:

既にPHPやApache2をインストールしている場合は,一度uninstallした方がよいでしょう.
既にインストールされているpackageを探すには

$ port installed

特定のpackageが既にインストールされているか確認するには

$ port installed php5

uninstallを行うには,

$ sudo port uninstall php5

関連するpackageも同時にuninstallするには

$ sudo port uninstall -f php5

ついでにcleanしておくとより安全かと思われます.

$ sudo port clean php5

1. 過去のリビジョンからPHP5 @5.3.2のデータをcheckoutしてきます

直接ports directoryにインストールするのは危険なので,どこか別のところでcheckoutします.

$ cd ~/Desktop
$ mkdir ports
$ cd ports


MacPortsリポジトリhttp://svn.macports.org/repository/macports/trunk/dports,リビジョン番号は70350のようです(参考).
ですので,以下のようにしてcheckoutします.checkoutにはしばらく時間がかかります.

$ svn co -r70350  http://svn.macports.org/repository/macports/trunk/dports

2. ports directoryのバックアップを取ります

もともとあるports directoryのバックアップを取ります.ports directoryの場所は "/opt/local/var/macports/sources/rsync.macports.org/release/ports" のはずです.私はお手軽にFinderでデスクトップにコピーしてしまいました.

3. checkoutしたデータでports directoryを上書きします

checkoutしたデータを,先にバックアップを取った "/opt/local/var/macports/sources/rsync.macports.org/release/ports" に移動させます.checkoutしたデータは "dports" という名前になっているので,その中身を移動させる必要があります.ここもお手軽にFinderで行いました.ファイルの数が多いので,しばらく時間がかかります.
次に,上書きしたことをMacPortsに知らせるコマンドを叩きます.

$ cd /opt/local/var/macports/sources/rsync.macports.org/release/ports
$ sudo portindex

sudoを付けないと権限が足りずに失敗します.これもしばらく時間がかかります.
これで過去のリビジョンを対象にMacPortsがインストールを行ってくれるようになりました.

4. PHP5をインストールします

ここから先は一般的なインストールです.インストールしたいものが他にあれば,オプションを追加して構いません.

$ sudo port install php5 @5.3.2 +apache2

5. php5-mysqlをインストールします

手順4.と同様に,オプションを追加しても構いません.

$ sudo port install php5-mysql

以上です.
では.