2013-03-06 63 views
0

我是perl中的noob。perl搜索路徑中缺少site_perl目錄

我在CentOS 5上使用安裝在/usr/lib/perl5/site_perl上的perl模塊。在CentOS 6上,perl搜索路徑(@INC)缺少該目錄。

在CentOS 5 perl -V來輸出:

Summary of my perl5 (revision 5 version 8 subversion 8) configuration: 
    ....... 
    ....... 
    Built under linux 
    Compiled at Sep 3 2009 10:26:51 
    @INC: 
    /usr/lib64/perl5/site_perl/5.8.8/x86_64-linux-thread-multi 
    /usr/lib/perl5/site_perl/5.8.8 
    /usr/lib/perl5/site_perl 
    /usr/lib64/perl5/vendor_perl/5.8.8/x86_64-linux-thread-multi 
    /usr/lib/perl5/vendor_perl/5.8.8 
    /usr/lib/perl5/vendor_perl 
    /usr/lib64/perl5/5.8.8/x86_64-linux-thread-multi 
    /usr/lib/perl5/5.8.8 
    . 

在CentOS 6的perl -V輸出:

Summary of my perl5 (revision 5 version 10 subversion 1) configuration: 
    ..... 
    ..... 
    Built under linux 
    Compiled at Jun 22 2012 13:27:28 
    @INC: 
    /usr/local/lib64/perl5 
    /usr/local/share/perl5 
    /usr/lib64/perl5/vendor_perl 
    /usr/share/perl5/vendor_perl 
    /usr/lib64/perl5 
    /usr/share/perl5 
    . 

我應該在哪裏把弓獨立的東西了嗎?

+0

這是一個CPAN模塊,還是您自己編寫的模塊? – Borodin 2013-03-06 07:36:07

+0

@Borodin它是我的模塊 – dimba 2013-03-06 07:49:23

+0

然後,正如我在我的回答中所說的那樣,要麼將它放在當前的工作目錄中,要麼 - 放在一個文件夾中,您已將它放在一邊,並將PERL5LIB設置爲該路徑。 – Borodin 2013-03-06 08:11:39

回答

2

平原Perl模塊:

perl -V:installsitelib 

考慮創建一個Makefile.PL或Build.PL並用它來安裝模塊;做

module-starter --module Your::Module::Name --author 'Your Name' --email [email protected] 

將使用module-starter創建一個模板分配您可以將代碼複製到。

+0

是的,除了可能沒有一個,看起來在這種情況下沒有。 – Borodin 2013-03-06 08:14:26

+0

@Borodin:真的嗎?我想這是/ usr/local/share/perl5(和/ usr/local/lib64/perl5很可能是installsitearch) – ysth 2013-03-06 08:16:24

+0

@ysthThis正是我在找的東西。我需要在構建rpm時安裝pm -apparently,其中有預定義的變量%{perl_sitelib},它使用「perl -V:installsitelib」(請參閱​​https://github.com/akozumpl/rpm/blob/master/macros.in) – dimba 2013-03-07 12:50:09

2

如果您使用的是CPAN模塊,那麼您應該讓cpan實用程序決定安裝軟件包時將文件放置在何處。

如果你寫的模塊自己,那麼你可以將代碼放在當前工作目錄(你會看到.@INC最後一個項目),或在環境變量PERL5LIB或Perl中指定一個單獨的目錄源文件與use lib

將開發模塊放在每個用戶的@INC列表中的目錄中是一個壞主意。

如果您需要單獨的站點庫永久目錄,那麼您應該使用其他庫路徑重新構建Perl。具體到你的網站目錄應該給出