MacPortsでphp5-mysqlがインストールできない問題の解決方法
HDDの容量がのこり僅かとなってしまっていたので,最近クリーンインストールをしました.MacPorts経由でインストールした開発環境はバックアップが取れなかったので,開発環境を構築しようとコマンドを叩いていると,PHPのMySQL 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