2016-06-22 5 views
2

私はchrootで動作していたperlスクリプトを持っていますが、今はchrootの外で動作させたいと思います。つまり、/ usr/libの代わりに、/ usr/lib /にある/ chroot/used/to /にライブラリとモジュールだけを探すためにperlを何とかしなければならないということです。私はプッシュ@INCでスクリプト内に新しいディレクトリを追加しようとしましたが、依存関係はまだ壊れていて、古いディレクトリを見ています。コマンドラインからPerlの@INCを置き換えてください。

ライブラリやモジュールの特定のディレクトリだけを見たいスクリプトを実行すると、perlに伝える方法はありますか?

また、標準ディレクトリ(/ usr/bin、/ usr/libなど)を非標準のディレクトリに置き換えたときでも依存関係が引き続き機能することを確認するもう1つの方法がありますか?

答えて

3

-Iオプションを使用し、コマンドラインから@INCを変更するには:プログラムで

perl -lIadded -e 'print for @INC' 

を、あなたはコンパイル時に十分に早く、すなわち@INCを変更する必要があります。あなたが任意の新しいディレクトリを置くことLIBを使用することができます

export PERL5LIB=/path/... 
perl -e 'print for @INC' 
+0

@PerlDog:提案をいただきありがとうございます。 – choroba

0

:これは

BEGIN { unshift @INC, '/path/...' } 

またはあなたはまた、PERL5LIB環境変数を設定することができlib

use lib '/path/...'; 

を使用して行うことができますあなたのプログラムで。あなたのケースで

use lib "path"; 

ちょうどあなたのプログラム

use lib "/usr/lib/"; 

の先頭に次の行を追加し、これはあなたのために働くことを願っています。

関連する問題