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 -i Bundle::CPAN
途中の質問は何も考えず全てリターンで.