2013-03-06 64 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。具体到你的网站目录应该给出