MacBookにpearをインストールしたメモ

Ethnaのテストを動かそうとしてローカルの環境を整えていたら、simpletestが入っていなくて、さらにpearコマンドで入れようとしたら pearが入っていなかったので、インストールをしてみた。
ローカルの MacBookでは、phpもソースインストールではないので、元々入っているやつをそのまま使っている。
普段使っている CentOSならば、yumで、と行きたいところだが、Macなので、MacPortsかなーと思って探してみたが、それらしいのは無かった。

$ port search php
$ port search pear


そこでぐぐって出てきた、こちらのサイトを参考に入れてみた。ほぼそのままですが。
Mac OS 10.5にpearをインストール│素晴らしき哉、人生!

今回の環境はこちら。

$ php -v
PHP 5.2.6 (cli) (built: Jul 15 2008 23:16:51) 
Copyright (c) 1997-2008 The PHP Group
Zend Engine v2.2.0, Copyright (c) 1998-2008 Zend Technologies


pear.php.netから落としてきたファイルを実行する。

$ curl http://pear.php.net/go-pear> pear.php
$ sudo php -q pear.php

2回Enterをすると以下のような質問を聞いてくる。

Below is a suggested file layout for your new PEAR installation. To
change individual locations, type the number in front of the
directory. Type 'all' to change all of them or simply press Enter to
accept these locations.

1. Installation prefix ($prefix) : /Users/XXXX
2. Temporary files directory : $prefix/temp
3. Binaries directory : $prefix/bin
4. PHP code directory ($php_dir) : $prefix/PEAR
5. Documentation base directory : $php_dir/docs
6. Data base directory : $php_dir/data
7. Tests base directory : $php_dir/tests

1-7, 'all' or Enter to continue:

1を押してインストールパスを変更する。
私は、/usr/share/pear を指定しました。


このままでは、pearコマンドにパスが通っていないので、/usr/bin/以下にシンボリックリンクを作成しておく。

$ sudo ln -fs /usr/share/pear/bin/* /usr/bin/


これで、いつもの pear コマンドが使えるようになった。

$ pear list
Installed packages, channel pear.php.net:
=========================================
Package           Version State
Archive_Tar       1.3.2   stable
Config            1.10.11 stable
Console_Getopt    1.2.3   stable
HTML_Template_IT  1.2.1   stable
MDB2              2.4.1   stable
MIME_Type         1.1.3   stable
PEAR              1.7.2   stable
PEAR_Frontend_Web 0.7.3   beta
Structures_Graph  1.0.2   stable


Ethnaで必要なファイルをインストールする。

$ sudo pear channel-discover pear.ethna.jp
$ sudo pear install ethna/smarty
$ sudo pear install ethna/simpletest


pear list コマンドに -a オプションを付けて入っているのを確認。

$ pear list -a
Installed packages, channel __uri:
==================================
(no packages installed)
Installed packages, channel pear.ethna.jp:
==========================================
Package    Version State
Smarty     2.6.21  stable
simpletest 1.0.1   stable
Installed packages, channel pear.php.net:
=========================================
Package           Version State
Archive_Tar       1.3.2   stable
Config            1.10.11 stable
Console_Getopt    1.2.3   stable
HTML_Template_IT  1.2.1   stable
MDB2              2.4.1   stable
MIME_Type         1.1.3   stable
PEAR              1.7.2   stable
PEAR_Frontend_Web 0.7.3   beta
Structures_Graph  1.0.2   stable
Installed packages, channel pecl.php.net:
=========================================
(no packages installed)


このままでは、phpにパスが通っていなかったので、php.iniに記述を追加。
追加するために、まずは php.iniのある場所を探す。

$ php -i | grep ini
Configuration File (php.ini) Path => /etc
$ sudo cp /etc/php.ini.default /etc/php.ini
$ sudo vi /etc/php.ini

差分

$ diff /etc/php.ini.default /etc/php.ini
469c469
< ;include_path = ".:/php/includes"
---
> include_path = ".:/usr/share/pear/PEAR"

読み込まれているか確認

$ php -i | grep include_path
include_path => .:/usr/share/pear/PEAR => .:/usr/share/pear/PEAR


余談
ここまでやって再度、php.iniが読み込まれているか確認したところ、

$ php -i | grep ini
Configuration File (php.ini) Path => /etc
Loaded Configuration File => /private/etc/php.ini

/private/etc ?? という感じだった。
Macの /etc はシンボリックリンクなのかぁ

$ ls -l /etc
lrwxr-xr-x@ 1 root  admin  11 10 26 11:24 /etc -> private/etc