実際にCPANはファイルをインストールしません。各ディストリビューションに組み込まれたインストールスクリプトが実行され、実際のインストールが実行されます。 https://metacpan.org/pod/ExtUtils::MakeMaker#make-installを(とINSTALLDIRS
のデフォルト値はsite
です):ExtUtils::MakeMakerを使用して配布するために
は、デフォルトでは、ここに記載されています。 Module::Buildについては、https://metacpan.org/pod/Module::Build#INSTALL-PATHSを参照してください。
$Config{foo}
または%Config
についてのドキュメントは、the Config moduleによって提供される%Config
変数を意味します。 $Config{foo}
の値は、perl -V:foo
を実行して検査することもできます。
(あなたはこれが不必要に複雑なようだと思うなら、あなたは正しい。)Perlは複数の「特定のサイト」のためにそのうちの1つは、「システムディレクトリ」、モジュールを有し、従ってとして使用すること
短いバージョンですデフォルトのインストール先。あなたはこれがマルチユーザシステムとうまく融合しない単一のディレクトリ(perlインストール単位)であることは間違いありません。すべてのユーザで共有されており、モジュールをインストールするにはroot権限が必要です(そうすることで、システムパッケージからモジュールをオーバーライドするのは悪い考えです)。
代わりに、ExtUtils :: MakeMaker、Module :: Buildなどを設定してユーザのホームディレクトリにインストールする人はいますか?これは環境変数で行うことができます。そして、perlにこのディレクトリを@INC
に追加するように指示するので、実際にモジュールを見つけて読み込むことができます。これは別の環境変数PERL5LIB
で行われます。 (PERL5LIB
はインストールには影響しません。ローディングにはまったく使用されています)。
上記はすべて自動化され、local::libでカプセル化されています。 (ローカル:: libには、プロジェクトごとのモジュールのサブディレクトリを作成するなどにも使用することができます。)
CPANのドキュメントにも書かれています:CPAN 1.9463のよう
を、あなたが書き込み権限を持っていない場合デフォルトのperlライブラリディレクトリでは、CPANの設定プロセスは、ブートストラップをlocal::lib
にするかどうかを尋ねるので、個人用のperlライブラリディレクトリを簡単に保つことができます。
あなたは、その場合には、「システム」ディレクトリが$HOME
下だけで、別のサブディレクトリであるため、誰と共有されていないと缶(自分のホームディレクトリにプライベートPerlをインストールすることで、全体の問題を回避することができますあなたが書いてください)。これは非常に簡単です。 perlbrew。
もう1つの注意:ドキュメントには、PERL5LIB
のバグが見つかりました。 "および現在のディレクトリ"は古くなっています。セキュリティ上の理由から、.
がデフォルトのモジュールの場所の一覧から削除されています。
CPAN-the-repositoryに加えて、CPAN-per-Perモジュール( 'cpan'コマンドが使用するもの)もあります。 – melpomene
テーブルはどこかから供給されていますか、それとも自分で書きましたか? – simbabque