*2010/08/12追記
まずはMacportsのインストール
PerlのインストールにもMacportsを使うと/opt/local以下にインストールしてくれるのでオススメします。
MacのデフォルトのPerlのインストールディレクトリを汚さないですし、アンインストールやアップグレードなどのバージョン管理もできるパッケージ管理ツールです。
MacPortsとは?
MacPorts(旧名DarwinPorts)というのはパッケージ管理ツールで、UNIX向けのオープンソースソフトウェアをダウンロード、configure、make、インストール、そのパッケージ使用するのに必要な他のパッケージも一緒にインストールなど面倒な作業をすべて代わりにやってくれる便利なソフト。
source: Macports – Macの手書き説明書
事前にXcodeTools、X11をMacに付属しているインストールDiscからインストールが必要です。
MacPortsをインストール
http://distfiles.macports.org/MacPorts/
から最新版のLeopardまたはSnowLeopard版のdmgをダウンロードしインストール。
シェルでmacportsのパスを通す(環境変数を追加)
~/.bashrcもしくは~/.bash_profileにMacPortsのパスを通すための環境変数を追加します。
export PATH=/opt/local/bin:/opt/local/sbin/:$PATH
export MANPATH=/opt/local/man:$MANPATH
sourceコマンドで実行します。
$ source ~/.bashrc
MacPorts自身のアップデートとportsのデータベース(Portfile/patch)を更新
$ sudo port -d selfupdate
$ sudo port -d sync
Perlのインストール
macportsでPerlのついでにgitとかsubversionとかvimなど便利なツールもインストールしておくと後々管理しやすくて楽です。
なにをインストールすればいいか悩んだらBeginning OS X 10.6/アプリ導入編 拾遺 – Beginning OS Xを見ればだいたいわかります。
$ sudo port install wget tree proctools git-core
$ sudo port install subversion
$ sudo port install nkf
$ sudo port install perl5
$ sudo port install vim
$ sudo port install emacs
Perlの実行パスの確認
macports用にパスが通せて(環境変数が設定できる)、macportsでPerlが無事にインストールされたら早速Perlの実行パスを確認します。
whichコマンドを使ってperlの実行パスを確認することができます。
$ which perl
/opt/local/bin/perl
CPANシェルを呼び出す
cpanシェルを使うと豊富なライブラリ群のCPANモジュールを自由にインストールすることができます。
ダウンロードし、展開し、make installや make testまで自動でしてくれます。
初期設定後は、以下のコマンドのどちらかを打つだけでCPANシェルを呼び出すことができます。
$ sudo cpan
$ sudo perl -MCPAN -e shell
実行後、cpan>と表示されれば無事にCPANシェルが立ち上がっています。
これでCPANモジュールをインストールすることができます。
$ sudo cpan
Password:
Terminal does not support AddHistory.
cpan shell -- CPAN exploration and modules installation (v1.7602)
ReadLine support available (try 'install Bundle::CPAN')
cpan>
インストールディレクトリの確認 (必要であれば)
まずは、以下のシェルでインストールディレクトリを知る必要があります。perl -Vでも環境変数や細かいインストール時の情報が確認できます。
左のパスから優先的にインストールされます。
$ perl -e 'print "@INC"'
/opt/local/lib/perl5/5.8.8/darwin-2level /opt/local/lib/perl5/5.8.8 /opt/local/lib/perl5/site_perl/5.8.8/darwin-2level /opt/local/lib/perl5/site_perl/5.8.8 /opt/local/lib/perl5/site_perl /opt/local/lib/perl5/vendor_perl/5.8.8/darwin-2level /opt/local/lib/perl5/vendor_perl/5.8.8 /opt/local/lib/perl5/vendor_perl
もしくはperl -V オプションで詳細がごそっと確認できます。
$ perl -V
Summary of my perl5 (revision 5 version 8 subversion 9) configuration:
Platform:
osname=darwin, osvers=10.3.2, archname=darwin-2level
(以下省略)
CPANモジュールのインストール
cpanシェルを実行した際に表示されている通り、 cpanシェルでinstall Bundle::CPANとコマンドを打ってみましょう。
早速 Bundle::CPANモジュールがインストールされ、readlineという上カーソルキーを押すとコマンドの履歴が呼び出せるようになります。
cpan> install モジュール名
ここまででだいたいCPANモジュールのインストールは完了です!
cpan>シェルを終了したい場合
cpan> quit
cpan> q
のいずれかで終了できます。
よくある質問
CPANモジュールがインストールされたかどうか確認したい
cpanモジュールがインストールされたどうかは、cpanシェル時の “i /モジュールを名/” コマンドか、”perldoc [モジュール名] “のコマンドで調べることが可能です。
cpan> i /モジュール名/
例:
cpan> i /Web::Scraper/
Module Web::Scraper (M/MI/MIYAGAWA/Web-Scraper-0.24.tar.gz)
Module Web::Scraper::Config (D/DM/DMAKI/Web-Scraper-Config-0.01.tar.gz)
Module Web::Scraper::Filter (M/MI/MIYAGAWA/Web-Scraper-0.24.tar.gz)
3 items found
cpanモジュールがインストールされたパスを知るには
以下のコマンドでできます。
$ perldoc -ml モジュール名
参考リンク:CPAN モジュールがインスコされたパスを調べる時 – にぽたん研究所
手動でインストールを行いたい場合 (CPANシェルをあえて使わない場合)
初期の環境のままではCPANモジュールのmakeができないので、make install時にエラーになります。
Mac OSX Leopard付属のインストールディスクNo.2から XcodeTools > XcodeTools.mpkg をダブルクリックしてインストール。
先ほどの@INCパスにあるディレクトリ内へCPANモジュールをコピーし、makeします。
例:
$ cp -r /ダウンロードディレクトリ /opt/local/lib/perl5/5.8.8
$ sudo perl Makefile.pm
$ sudo make install
$ sudo make test
モジュールを入手してインストールする方法 – Perlの小技が非常に参考になりました。
※cpanシェルがエラーになって起動できない場合の対処法
CPANシェルのプロセスを立ち上げたまま、別のCPANシェルを立ち上げようとすると下記のようなエラーメッセージがでてきます。
Terminal does not support AddHistory.
CPAN.pm panic: Lockfile /var/root/.cpan/.lock
reports other host EM60-254-232-36.pool.e-mobile.ne.jp and other process 14521.
Cannot proceed.
これは/var/root/.cpan/.lockにロックファイルが残っている為に起きているエラーです。
そんな時は以下のsudo権限でrmコマンドを使いロックファイルを削除してください。
$ sudo rm /var/root/.cpan/.lock
FireFoxにCPANモジュール検索バーの追加
CPANを素早く検索できるよう、FireFoxの検索バーにCPANモジュール検索を追加します。
私はCPAN – Modulesだけを登録しています。 以下のリンクからできます。
http://mycroft.mozdev.org/download.html?name=CPAN&sherlock=yes&opensearch=yes&submitform=Search
その他Perl関連で参考になったサイト
その他ご意見や情報が足りない、間違ってる等ツッコミがありましたらacotie.acotie[at]gmail.comまでメールを頂けると嬉しいです。