Mac OS X 10.6でのPerl(5.10)モジュールのインストール
10.6 "Snow Leopard"にいくつかのPerlモジュールをインストールしようとして、少し苦労してしまったので、以下簡単にメモ。
ちなみにSnow Leopardには、比較的新しいPerl 5.10が載っているのだが、FINKには5.10用のモジュールがまだあまり整備されていなかった。そのために、自前で多くのモジュールをインストールせねばならなかったので、少し苦労することに…。Mac OSの新しいバージョンは、出てから1年くらいたってから手を出すのが良いかもしれない。なお、大半のモジュールは伝統的なやり方で大丈夫だった。例えば「Jcode」モジュールをインストールするには、ターミナルで以下のようにすれば良い。
sudo perl -MCPAN -e shell
install Jcode
しかしDBD::mysql、Image::Magick、Perl/Tkといったモジュールでは、いくらか手を加える必要があった。まずDBD::mysqlから。
- まず32bit版のMySQL Serverをインストールする。これはmysql.comののBinaryパッケージでOK。OSが64bitでも、32bit版をインストールするのがポイント。
- ターミナルで「export PATH=/usr/local/mysql/bin:$PATH」を実行。
- あとは同じターミナルでDBD::mysqlのインストールを行えば良い。
次にImage::Magick。FINKではImageMagick本体とそのPerlモジュールが別々になっていて、Perl 5.10用のモジュールはまだ用意されていない。そこで、ImageMagick本体のインストール時に、Perlモジュールも一緒にインストールしてしまうように変更する。
- FINKでImageMagicのパッケージをソースからインストール。
- インストールが上手く行くことを確認したら、いったんFINK上でImageMagicをアンインストール。
- 次の手順で、FINKのImageMagickパッケージを編集する。
- まず、現在のパッケージ記述を
fink dumpinfo -finfofile ImageMagick
で探す。 - これを /sw/fink/10.5/local/main/finkinfo にコピーする
- コピーしたものを編集して、パッケージの名前を「my-ImageMagick」のように変更し、「--without perl」という記述を削除する
- まず、現在のパッケージ記述を
- 編集した「my-ImageMagick」をインストールすれば、Perlモジュールも自動的にインストールされる。
最後はPerl/Tk。せっかくのMacなので、Perl/Tkで作成したGUI・Windowでも、ヒラギノフォントにアンチエイリアスをかけて表示したい。そのためには少し手間をかける必要がある。
- FINKを使ってfontconfig、freetype、xftなどをインストール。Geditをインストールして、Geditでヒラギノフォントを選べるようになっていればこの段階の準備は完了。
- Perl/TkをCPANからダウンロードして解凍。今回使用したのはTk-804.028_501。
- myConfigの409行目を次のように編集(赤が追加部分)。
my $ftinc = Ift("/usr/include","/usr/local/include","/sw/include",$X11INC||()); - PNG/Makefile.PLの18行目~30行目までを次のように編集(赤が編集部分)。
if (1)
{
Tk::MMutil::TkExtMakefile(
NAME => 'Tk::PNG',
VERSION_FROM => 'PNG.pm',
XS_VERSION => $Tk::Config::VERSION,
dist => { COMPRESS => 'gzip -f9', SUFFIX => '.gz' },
OBJECT => '$(O_FILES)',
INC => '-I/sw/include',
LIBS => ['-L/sw/lib -lpng -lz -lm'],
);
} - makeする際には以下のようにする:
perl Makefile.PL XFT=1
make
sudo make install
こうしてあれこれモジュールをインストールせねばならないのは、面倒と言えば面倒。しかし、それだけ多くの先人達の仕事(モジュール)があってこそ、自分の仕事が成り立っているということでもある。(アカデミックな分野ではとりわけ)フリーソフトウェア(自由ソフトウェア)の考え方は素晴らしい。感謝。
コメント