Mac OS Xでもlocal::libをつかってCPANモジュールを入れようB!

前置き

他人の書いたCPANモジュールをつかったTipsを書くCasual trackということなので、さっそく定番のlocal::libについて書いちまうotsuneです。

概要

local::libは簡単にいうとCPANモジュールをシステム標準とは違う任意のディレクトリにインストールする設定を支援してくれる便利ツールです。root権限の無いレンタルサーバーでCPANモジュールをインストールするために使われたり、Remedieのように依存CPANモジュールごとまとめて配布するのに使われたりします。

今回はMac OS Xでsudo権限を使わずにCPANモジュールをインストールするための方法を解説します。

標準のPerlのモジュールと後からインストールしたCPANモジュールを別ディレクトリに分けておけるので

  • OSのインストールしなおしでもバージョンが戻ったりしない
  • 生活環境のバックアップが簡単に
  • 定番CPANモジュールが入りまくってても自作スクリプトのMakefile.PLのrequires書き漏れをチェックしやすい

など、新婚家庭における夫婦円満のためには必須とも言える機能が実現できるのでオススメです。

あらかじめインストールCDなどからXcodeをインストールしておく必要が有ります。

以下、あたまに%が付いているのはターミナルでのコマンド入力を表しています。「/アプリケーション/ユーティリティ/ターミナル」を実行して入力してください。

前準備

まず最新版local::libを

CPAN Search - local::lib

から探します。

そしてlocal::libをクリックして「Download:」欄にあるURLからlocal-lib-{バージョン}.tar.gzを取得します。(以下、執筆時で最新の1.004009における手順で解説します)

% curl -LO http://search.cpan.org/CPAN/authors/id/A/AP/APEIRON/local-lib-1.004009.tar.gz

(Mac OS Xなのでシステム標準のcurlを使いますが、MacPortsで入れたwgetやfetchコマンドでも同じことが出来ます。search.cpan.orgからミラーサイトにredirectされるのでcurlに-Lオプションをつける必要が有るようです)

tar.gzを展開して

% tar zxvf local-lib-1.004009.tar.gz

ディレクトリに入ります

% cd local-lib-1.004009/

Makefileをつくってインストールします

% perl Makefile.PL --bootstrap
% make test && make install

(--bootstrap=にインストール先ディレクトリを指定することもできます。細かい手順はlocal::libのドキュメントlocal::lib The bootstrapping techniqueを参照してください。デフォルトでホームディレクトリの~/perl5以下にCPANモジュールが入ります)

CPANの設定をいくつか聞かれますが、基本的にはreturnを押せばOkです。

環境設定

今のMac OS Xの標準シェルはbashなので、大抵の人はbashを使っていると思います。

分からなければ

% echo $SHELL

で「/bin/bash」と表示されるかどうかで確認できます。(tcshやzshを使っている人は表示が変わります)

まず~/.bash_profileに.bashrcを読み込むスクリプトを適当なエディターで作成します。

if [ -f ~/.bashrc ]; then
    . ~/.bashrc
fi

(このあたりはBeginning OS X 10.6/インフラ整備編なども参考に)

local::libのドキュメントにしたがって~/.bashrcに環境変数用のスクリプト書き込みます。

% echo 'eval $(perl -I$HOME/perl5/lib/perl5 -Mlocal::lib)' >>~/.bashrc

いちどログアウトしてログインなおすか

% . ~/.bashrc

と実行して.bashrcを読み込みます。

tcshの場合は~/.cshrcに書き込みます。(bashを使っている人は実行しません)

% perl -I$HOME/perl5/lib/perl5 -Mlocal::lib >> ~/.cshrc

いちどログアウトしてログインなおすか

% source ~/.cshrc

と実行して.cshrcを読み込みます。

環境完成

あとは

% cpan -i Web::Scraper

% cpan
> install Web::Scraper

などで任意のCPANモジュールをホームディレクトリの~/perl5以下にインストールすることができます。sudo権限を使う必要は有りません。

おまけ

eg/scripter_install.plをperlで実行すると、上記の作業を一気にやってくれます。(.bashrcなどの設定は必要です)