1

Perlモジュールを作成してインストールすると

perl Makefile.PL prefix=/path/to/perllib

次に、PERL5LIB を /path/to/perllib に設定すると、モジュールが見つかるはずです。そうではないようです。モジュールは /path/to/perllib/site_perl/5.8.5/ にインストールされるので、これを PERL5LIB に設定する (または "use lib" に渡す) 必要があります。

モジュールのインストール方法や PERL5LIB の設定方法に何か問題がありますか?

4

4 に答える 4

4

PREFIX= と LIB= を混同しています。

ディストリビューションは単なるモジュールではありません。たとえば、ドキュメントはモジュール自体と同じディレクトリにインストールされません。PREFIX= は、すべてのコンポーネントのベース パスを Perl に伝えます。

LIB= は、モジュールをインストールする場所を Perl に指示します。

使用(例)

perl Makefile.PL PREFIX=~ LIB=~/lib/perl5

次に、使用します

export PERL5LIB=~/lib/perl5
于 2012-07-26T15:39:23.243 に答える
2

簡単に言うと、INSTALL_BASEの代わりに使用しPREFIXます。他のインストーラーのように機能--prefixし、予測可能なインストール パターンを作成します。次に、設定PERL5LIB<INSTALL_BASE>/lib/perl5て移動できます。

ExtUtils::MakeMaker::FAQは次のように説明しています:

PREFIX の動作は複雑で、Perl の設定方法に大きく依存します。結果として得られるインストール場所は、マシンごとに異なり、同じマシンに異なる Perl をインストールした場合でも異なります。このため、プレフィックスがモジュールを配置する場所を文書化するのは困難です。

対照的に、INSTALL_BASE には、予測可能で説明しやすいインストール場所があります。Module::Build と MakeMaker の両方に INSTALL_BASE があるので、既存のインストール場所を維持する以外に PREFIX を使用する理由はほとんどありません。Perl の新規インストールを開始する場合は、INSTALL_BASE を使用することをお勧めします。PREFIX 経由でインストールされた既存のインストールがある場合は、INSTALL_BASE に一致するインストール構造に移動し、代わりにそれを使用することを検討してください。

于 2012-07-26T16:57:41.283 に答える
2

いいえ、そのように動作します。プレフィックスはインストールのルートを示しますが、ライブラリ ディレクトリは通常、そのディレクトリ構造内のより深い場所にあります。

PERL5LIBただし、同じプレフィックスを持つ複数のモジュールをインストールする場合、それらはすべて同じ値を使用できるはずです。

于 2012-07-26T14:03:26.590 に答える
0

perlのバージョンは?'site_perl' までのパスのみを指定する必要があります。site_perl の下にないライブラリの場合は、'perllib' までのパスも指定する必要があります。最近のバージョンの perl (5.8 以降?) では、バージョンとアーキテクチャ ディレクトリを指定する必要がなく、これら 2 つのディレクトリのみを指定できる点が優れています。

于 2012-07-26T15:08:33.310 に答える