Ran*_*all 5 default perl-module cpanm
在我使用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
Run Code Online (Sandbox Code Playgroud)
这是否定义了行为,还是有其他考虑?具体来说,cpanm 的文档包括:
Run Code Online (Sandbox Code Playgroud)-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.
但它并没有指出哪些环境变量是重要的。
这可能会有所帮助:https://metacpan.org/pod/App::cpanminus#Where-does-this-install-modules-to?-Do-I-need-root-access?
这会将模块安装到哪里?我需要 root 访问权限吗?
它安装到 ExtUtils::MakeMaker 和 Module::Build 配置到的任何位置(通过
PERL_MM_OPT和PERL_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,它会自动在您的主目录下的目录中设置 local::lib 兼容的安装路径
perl5。