我听说最好不要安装CPAN系统的Perl版本的模块。我知道如何使用命令行安装模块,我只是想知道是否有办法将CPAN与系统的核心Perl分开。
我应该:
下载源代码并专门为这些模块创建一个目录?
任何人都有他们成功使用的任何其他想法或实施?
答案 0 :(得分:0)
CPAN始终与核心分开 - 请注意/usr/lib/perl5
如何具有子目录core_perl
,vendor_perl
(由发行版打包的CPAN模块)和site_perl
(本地安装的模块)。
ExtUtils :: MakeMaker 和 Module :: Build 默认将所有内容安装到“site”目录;这也适用于使用cpan
或cpanm
命令安装的所有内容。如果您使用Linux发行版的软件包,它们将转到“供应商”路径。
您可以使用以下方式指定其他安装位置(例如,将所有CPAN模块保留在家庭直接中):
dir=~/perl5
export PERL5LIB="${dir}"
export PERL_MM_OPT="INSTALL_BASE='${dir}'"
export PERL_MB_OPT="--install-base '${dir}'"
答案 1 :(得分:0)
您可以在$HOME
目录中,在名为.perl5
的子目录中安装个人库。这是一个很好的做法(即使你没有超级用户在主机上)。
如果可执行文件和二进制文件必须由同一主机上的用户共享,那么最佳做法是手动安装 将部件添加到/usr/local/...
(您的位置)需要su
或使用sudo
)
通过安装程序确保路径正确,只需测试它们即可。
答案 2 :(得分:0)
在系统目录中安装时所承担的风险是每个与系统相关的Perl脚本都将使用这些模块。如果其中一个模块是系统使用的较新且不兼容的模块版本,那么您将不会满意。
在私有目录中安装的推荐方法是使用local :: lib。请参阅bootstrapping技术:https://metacpan.org/module/local::lib
设置local :: lib后,您可以使用任何标准CPAN客户端来安装模块。