XML::Parser のインストール

Mac OS X TigerPerlモジュール XML::Parser をインストールした時のメモです。

XML::Parserは、expat という XML Parser を利用しますので、expatを先にインストールしておく必要があります。CPANからそのままインストールしようとしても、うまく行きません。
この expat を MacPorts からインストールしようとしましたが、面倒なことになりました。

MacPortsからexpatはインストールしない方がいい?

ソースからでも簡単にインストールできるようですが、ここはいつもお世話になっている MacPorts で探してみることに(これが藪蛇になった・・・)。

$ port search expat
p5-xml-sax-expat               perl/p5-xml-sax-expat 0.37         SAX2 Driver for Expat (XML::Parser)
expat                          textproc/expat 2.0.0        XML 1.0 parser written in C

あっさりと見つかりました。XML::Parser 自体は、CPANからインストールしておいた方が後々便利かな、と思ったので、expat だけインストール。 

$ sudo port install expat

で、CPAN から XML::Parser をインストールしようとしたのですが、ここで問題発生。
MacPorts は、/opt/local/lib/ 以下に libexpat を入れてしまうようなのです。「non-standerd directory」ってことか。

If expat is installed, but in a non-standard directory, then use the
following options to Makefile.PL:

    EXPATLIBPATH=...  To set the directory in which to find libexpat

    EXPATINCPATH=...  To set the directory in which to find expat.h

For example:

    perl Makefile.PL EXPATLIBPATH=/home/me/lib EXPATINCPATH=/home/me/include

他のインストールで問題が起こるのも面倒なので、素直にソースから expat を入れることに方針転換。

まず、MacPorts から入れた expat をアンインストール

$ sudo port uninstall expat

ソースからexpatをインストール

http://sourceforge.net/projects/expat/ からソースをダウンロード。今日時点では、2.0が最新のようです。解凍して、いつも通りに以下。

$ ./configure
$ make
$ sudo make install

XML::Parser をインストール

やっとこさ、XML::Parser をインストール。

$ sudo perl -MCPAN -e shell
cpan> install XML::Parser