システムの Perl のバージョンがある CPAN からモジュールをインストールしないのが最善であると聞いたことがあります。コマンドラインを使用してモジュールをインストールする方法は知っていますが、CPAN をシステムのコア Perl から分離しておく方法があるかどうか疑問に思っていました。
するべきか:
ソースをダウンロードして、これらのモジュール専用のディレクトリを作成しますか?
他に成功したアイデアや実装を持っている人はいますか?
システムの Perl のバージョンがある CPAN からモジュールをインストールしないのが最善であると聞いたことがあります。コマンドラインを使用してモジュールをインストールする方法は知っていますが、CPAN をシステムのコア Perl から分離しておく方法があるかどうか疑問に思っていました。
するべきか:
ソースをダウンロードして、これらのモジュール専用のディレクトリを作成しますか?
他に成功したアイデアや実装を持っている人はいますか?
CPAN は常にコアから分離されています –/usr/lib/perl5
サブディレクトリcore_perl
、vendor_perl
(ディストリビューションによってパッケージ化された CPAN モジュール) およびsite_perl
(ローカルにインストールされたモジュール) があることに注意してください。
ExtUtils::MakeMakerとModule::Buildは両方とも、デフォルトですべてを「site」ディレクトリにインストールします。cpan
これは、またはcpanm
コマンドを使用してインストールするすべてのものにも当てはまります。Linux ディストリビューションのパッケージを使用する場合、パッケージは「vendor」パスに移動します。
次を使用して、別のインストール場所を指定できます (たとえば、すべての CPAN モジュールを自宅に直接保持する場合)。
dir=~/perl5
export PERL5LIB="${dir}"
export PERL_MM_OPT="INSTALL_BASE='${dir}'"
export PERL_MB_OPT="--install-base '${dir}'"
システム ディレクトリにインストールする場合のリスクは、システムに関連するすべての Perl スクリプトがそれらのモジュールを使用することです。モジュールの 1 つが、システムが使用するモジュールの新しい互換性のないバージョンである場合、満足することはできません。
プライベート ディレクトリにインストールするための推奨される方法は、local::lib を使用することです。ブートストラップ手法を参照してください: https://metacpan.org/module/local::lib
local::lib をセットアップすると、標準の CPAN クライアントのいずれかを使用してモジュールをインストールできます。