rootユーザでcpanライブラリをインストールすると、 /root/perl5/lib/perl5/
に格納される。これは、他のユーザからは見えないので、結果として”ライブラリが見つかりません”ということになる。
ルートユーザでcpanライブラリをインストールする例
$ su -
password:*******
# cpan Module::Module
sudo可能なユーザがcpanライブラリをインストールした場合は問題なし。
sudo可能なユーザでcpanライブラリをインストールする例
$ su user
password:*******
# sudo cpan Module::Module
password:******
cpanの設定を確認しても、特に怪しいところはない…
# cpan
cpan[1]> o conf
$CPAN::Config options from /root/.cpan/CPAN/MyConfig.pm:
〜省略〜
makepl_arg [INSTALLDIRS=site]
mbuild_arg []
mbuild_install_arg []
mbuild_install_build_command [./Build]
mbuildpl_arg [--installdirs site]
〜省略〜
環境変数を調べてみると
# printenv | grep perl
PERL5LIB=/root/perl5/lib/perl5/i686-linux-gnu-thread-multi-64int:/root/perl5/lib/perl5
PERL_MB_OPT=--install_base /root/perl5
PATH=/root/perl5/bin:/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin
PERL_LOCAL_LIB_ROOT=/root/perl5
PERL_MM_OPT=INSTALL_BASE=/root/perl5
案の定、環境変数にライブラリの格納先が指定されている。 ~/.bashrc
の設定を削除(コメントアウト)してやる。
~/.bashrc
#export PERL_LOCAL_LIB_ROOT="/root/perl5";
#export PERL_MB_OPT="--install_base /root/perl5";
#export PERL_MM_OPT="INSTALL_BASE=/root/perl5";
#export PERL5LIB="/root/perl5/lib/perl5/i686-linux-gnu-thread-multi-64int:/root/perl5/lib/perl5";
#export PATH="/root/perl5/bin:$PATH";