gpt4 book ai didi

perl - CPAN 将模块安装到 perl5 而不是 site_perl

转载 作者:行者123 更新时间:2023-12-04 23:19:52 24 4
gpt4 key购买 nike

我正在尝试将一些 cpan 模块临时安装到自定义文件夹 (/tmp/perl) 中。所以我修改了构建安装基础......

o conf mbuildpl_arg "--install_base /tmp/perl"
o conf makepl_arg "INSTALL_BASE=/tmp/perl"

效果很好,模块现在安装到该目录中。我还设置了 PERL5LIB
  PERL5LIB=/tmp/perl/lib/5.14.2/:/tmp/perl/lib/site_perl/:/opt/perl/lib/5.14.2/:/opt/perl/lib/site_perl/:

请注意,这只是临时的,在将被销毁的虚拟服务器上。

我注意到,以前它会将模块安装到 buildpath/lib/5.14.2 或 buildpath/lib/site_perl

但是现在,它将模块安装到 buildpath/lib/perl5

我的理解是核心 perl 模块最终位于 buildpath/lib/5.14.2 中,而非核心模块最终位于 buildpath/lib/site_perl 中。

由于这是安装到 buildpath/lib/perl5,什么决定安装到 perl5 目录而不是 5.14.2 或 site_perl ?

最佳答案

除非您通过环境变量(即 PERL_MM_OPTPERL_MB_OPT 中的值)或命令行参数(例如 cpanmbuildpl_argmakepl_arg 中的值)覆盖 ExtUtils::MakeMaker 和 Module::Build,否则位置将在构建时硬编码到 Perl 中。以下命令将显示这些位置(对于 .pm 和相关文件):

perl -V:'install(privlib|archlib|vendorlib|vendorarch|sitelib|sitearch)'
  • installprivlib包含 Perl 附带的“纯 Perl”模块。
  • installarchlib对于具有依赖于架构或构建的组件的模块也是如此。
  • installvendorlib包含发行版安装的“纯 Perl”模块。
  • installvendorarch对于具有依赖于架构或构建的组件的模块也是如此。
  • installsitelib包含您安装的“纯 Perl”模块。
  • installsitearch对于具有依赖于架构或构建的组件的模块也是如此。

  • 示例运行:
    $ perl -V:'install(privlib|archlib|vendorlib|vendorarch|sitelib|sitearch)'
    installprivlib='/usr/share/perl/5.14';
    installarchlib='/usr/lib/perl/5.14';
    installvendorlib='/usr/share/perl5';
    installvendorarch='/usr/lib/perl5';
    installsitelib='/usr/local/share/perl/5.14.2';
    installsitearch='/usr/local/lib/perl/5.14.2';


    $ perl -V:'install(privlib|archlib|vendorlib|vendorarch|sitelib|sitearch)'
    installprivlib='/home/ikegami/usr/perlbrew/perls/5.20.1t/lib/5.20.1';
    installarchlib='/home/ikegami/usr/perlbrew/perls/5.20.1t/lib/5.20.1/x86_64-linux-thread-multi';
    installvendorlib='';
    installvendorarch='';
    installsitelib='/home/ikegami/usr/perlbrew/perls/5.20.1t/lib/site_perl/5.20.1';
    installsitearch='/home/ikegami/usr/perlbrew/perls/5.20.1t/lib/site_perl/5.20.1/x86_64-linux-thread-multi';


    >perl -V:"install(privlib|archlib|vendorlib|vendorarch|sitelib|sitearch)"
    installprivlib='C:\progs\sp5280-x64\perl\lib';
    installarchlib='C:\progs\sp5280-x64\perl\lib';
    installvendorlib='C:\progs\sp5280-x64\perl\vendor\lib';
    installvendorarch='C:\progs\sp5280-x64\perl\vendor\lib';
    installsitelib='C:\progs\sp5280-x64\perl\site\lib';
    installsitearch='C:\progs\sp5280-x64\perl\site\lib';

    关于perl - CPAN 将模块安装到 perl5 而不是 site_perl,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/30379175/

    24 4 0
    Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
    广告合作:1813099741@qq.com 6ren.com