ユーザ領域に CPAN モジュールを install する.

始めに

CPAN は Comprehensive Perl Archive Network の略で, Perl の様々なモジュールを簡単に install するための system.

Debian には dh-make-perl というパッケージがあって, cpan モジュールから deb パッケージを作成できたりする. けれども cpan モジュールの依存関係を 解決してパッケージを作成する訳ではないので, 『○○という cpan モジュールを使用したいのに, dh-make-perl でパッケージ化を試みるも, 依存関係を解決できずにパッケージが作成できない』なんて事もしばしば.

この辺りを解決するために, dh-make-perl-allの仕様と実装 にあるように, dh-make-perl-all を作成している方もいらっしゃる. dh-make-perl-all はかなり便利なんで, 管理者権限がある場合にはガシガシ使うと良いと思う.

ここでは cpan モジュールを使用したいけど管理者権限が無い, なんて場合に, ユーザ領域に cpan モジュールを install するための作業をメモしておく.

初期設定

install 先は $HOME/lib/CPAN としておく. 場所が変な気がしてモヤモヤする けれど, $HOME 以下に置くディレクトリはあまり増やしたくないので.

ディレクトリ作成

  $ mkdir -p ~/lib/CPAN

初期設定ファイルの作成

  $ echo no | cpan

設定ファイルは ~/.cpan/CPAN/MyConfig.pm この中の該当箇所を修正する.

 'make_install_arg' => qq[SITEPREFIX=$ENV{HOME}/lib/CPAN],
 'makepl_arg' => qq[INSTALLDIRS=site INSTALL_BASE=$ENV{HOME}/lib/CPAN LIB=$ENV{
HOME}/lib/CPAN/lib/perl5 PREFIX=$ENV{HOME}/lib/CPAN],
 'mbuildpl_arg' => qq[./Build --install_base $ENV{HOME}/lib/CPAN],
あと, urlist を適宜追加修正しておく.

次に PATH と PERL5LIB の修正. zsh を使っているので .zsh/.zshenv に

# for perl(CPAN)
if [ -d ${HOME}/lib/CPAN ]; then
export PATH=${HOME}/lib/CPAN/bin:${PATH}:
export PERL5LIB=${HOME}/lib/CPAN/lib/perl5:${HOME}/lib/CPAN/lib/perl5/site_perl
export MANPATH=${HOME}/lib/CPAN/man:${MANPATH}
fi

なんて仕込んでおく.

CPAN のアップデート

 $ cpan -i Bundle::CPAN

途中の質問は何も考えず全てリターンで.