【问题标题】:What is the default path for cpanm to install Perl modules?cpanm 安装 Perl 模块的默认路径是什么?
【发布时间】:2017-01-27 22:18:34
【问题描述】:

在我使用cpanm 在“新”(对我而言)系统上安装一些 Perl 模块之前,我想知道默认情况下它们将安装在哪里。

我没有看到任何类型的试运行选项,这正是我所希望的。

perl -V 包括此 %ENV 和 @INC 信息:

%ENV:
  PERL5LIB="/home/randall/perl5/lib/perl5"
  PERL_HOMEDIR="1"
  PERL_LOCAL_LIB_ROOT="/home/randall/perl5"
  PERL_MB_OPT="--install_base /home/randall/perl5"
  PERL_MM_OPT="INSTALL_BASE=/home/randall/perl5"
@INC:
  /home/randall/perl5/lib/perl5
  /usr/local/lib64/perl5
  /usr/local/share/perl5
  /usr/lib64/perl5/vendor_perl
  /usr/share/perl5/vendor_perl
  /usr/lib64/perl5
  /usr/share/perl5

这是否定义了行为,还是有其他考虑因素?具体来说,cpanm 的文档包括:

-l, --local-lib
    Sets the local::lib compatible path to install modules to. You don't
    need to set this if you already configure the shell environment
    variables using local::lib, but this can be used to override that as
    well.

但它并没有指出哪些环境变量是重要的。

【问题讨论】:

    标签: default perl-module cpanm


    【解决方案1】:

    这可能会有所帮助:https://metacpan.org/pod/App::cpanminus#Where-does-this-install-modules-to?-Do-I-need-root-access?

    这会将模块安装到哪里?我需要 root 访问权限吗?

    它安装到 ExtUtils::MakeMaker 和 Module::Build 配置到的任何位置(通过 PERL_MM_OPTPERL_MB_OPT)。

    默认情况下,它会安装到属于您的 perl 的 site_perl 目录。您可以通过运行perl -V 来查看它的位置,如果您使用的是系统 perl,它可能位于 /opt/local/perl/... 下,或者如果您使用 perlbrew 或 pleenv 自己构建了 perl,它可能位于您的主目录下。

    如果你已经在你的 shell 上配置了 local::lib,cpanm 认为设置和模块将被安装到你的本地 perl5 目录中。

    在启动时,cpanminus 会检查您是否已经配置了 local::lib,或者是否有权将模块安装到 site_perl 目录。如果两者都不是,即您使用的是系统 perl 并且没有以 root 身份运行 cpanm,它会自动在您的主目录下的 perl5 目录中设置 local::lib 兼容的安装路径。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2014-09-30
      • 2019-04-11
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多