はちゅにっき

こっちのブログはまったり更新

一般ユーザで CPAN モジュールをインストール(まとめ)

毎回悩むので、まとめちゃおぅ

今回は、一般ユーザからモジュールを ~/perl/modules にインストールする
と仮定して書こー。
他のディレクトリにインストールする場合は ~/perl/modules の部分を
該当するディレクトリに書き換えればへーきかな?
あと、~/.zshrc などに

export PERL5LIB="$HOME/perl/modules"

と記述しておくと便利。とゆーかなんとゆーか。
CPAN を使った際にインストール済のモジュールを
再度インストールしなくて済んだりと、いろいろメリットが。
また、モジュールを実際に使うときは、perl のスクリプトに

use lib qq($ENV{'HOME'}/perl/modules);

などと記載しておけばよさそう。*1
そんなところで、実際のインストールの手法を書いていきます。


Case1: CPANからインストール

  • CPANを始めて使う場合

とりあえず、CPAN 本体をムリヤリ設定しちゃう。
まず、以下の手順でフォルダを作る

$ mkdir ~/.cpan
$ mkdir ~/.cpan/CPAN

続いてCPANの設定ファイルをムリヤリ作ってしまう

$ vi ~/.cpan/CPAN/MyConfig.pm

MyConfig.pm の中身はこんな感じ

$CPAN::Config = {
    'cpan_home'  => q[~/.cpan],
    'histfile'   => q[~/.cpan/histfile],
    'make_install_arg' => q[SITEPREFIX=~/perl/modules],
    'makepl_arg' => q[INSTALLDIRS=site INSTALLSITELIB=~/perl/modules PREFIX=~/perl/modules LIB=~/perl/modules],
    'mbuildpl_arg' => q[--install_base ~/perl/modules],
}

この状態で CPAN を実行して、初回実行時の設定をいつもどーりに済ませればおっけ

$ perl -MCPAN -e shell
We have to reconfigure CPAN.pm due to following uninitialized parameters:

# ごにょごにょ と以下続く...

ちなみに、makepl_arg の設定がこんなにいるのかは謎。
でもこれで pod ドキュメントがインストールできない!
ってエラーでなくなったからいいや。

  • 何度かCPANを使っている場合

CPANの設定ファイルをムリヤリ書き換えばおっけ。
書き換える内容は makepl_arg の項目だけ。。。じゃないかな?
CPANの設定ファイルは ~/.cpan/CPAN/MyConfig.pm にあるはず。
たぶん。

$CPAN::Config = {

    # 設定項目がたくさん...

    # makepl_arg を以下のように変更しちゃう
    'makepl_arg' => q[INSTALLDIRS=site INSTALLSITELIB=~/perl/modules PREFIX=~/perl/modules LIB=~/perl/m
odules],

    # 設定項目がたくさん...

};
1;
__END__


Case2: tar 玉を拾ってきてインストール
tar 玉を拾ってきてインストールする場合は
Makefile.PL を実行するときに以下のように工夫をすればおっけ。

$ perl Makefile.PL INSTALLDIRS=site \
                   INSTALLSITELIB=~/perl/modules \
                   LIB=~/perl/modules \
                   PREFIX=~/perl/modules

あとはいつものように

$ make
$ make test
$ make install

でインストール完了みたい。

*1:PERL5LIB が有効になってる場合は不要