我听说最好不要从您系统的 Perl 版本所在的 CPAN 安装模块。我知道如何使用命令行安装模块,我只是想知道是否有办法将 CPAN 与系统的核心 Perl 分开。
我是不是该:
下载源代码并专门为这些模块创建一个目录?
任何人有他们成功使用的任何其他想法或实现?
我听说最好不要从您系统的 Perl 版本所在的 CPAN 安装模块。我知道如何使用命令行安装模块,我只是想知道是否有办法将 CPAN 与系统的核心 Perl 分开。
我是不是该:
下载源代码并专门为这些模块创建一个目录?
任何人有他们成功使用的任何其他想法或实现?
CPAN 总是与核心分开——注意/usr/lib/perl5
子目录core_perl
,vendor_perl
(发行版打包的 CPAN 模块)和site_perl
(本地安装的模块)。
ExtUtils ::MakeMaker和Module::Build都默认将所有内容安装到“站点”目录;这也适用于您使用cpan
orcpanm
命令安装的所有内容。如果您使用 Linux 发行版的软件包,它们会转到“供应商”路径。
您可以使用以下命令指定不同的安装位置(例如,将所有 CPAN 模块直接保存在您的 home 中):
dir=~/perl5
export PERL5LIB="${dir}"
export PERL_MM_OPT="INSTALL_BASE='${dir}'"
export PERL_MB_OPT="--install-base '${dir}'"
在系统目录中安装时所冒的风险是每个与系统相关的 Perl 脚本都将使用这些模块。如果其中一个模块是系统使用的模块的较新且不兼容的版本,那么您将不高兴。
在私有目录中安装的推荐方法是使用 local::lib。请参阅引导技术:https ://metacpan.org/module/local::lib
设置 local::lib 后,您可以使用任何标准 CPAN 客户端来安装模块。