安装CPAN模块而不会弄乱系统Perl安装

时间:2012-12-18 06:30:18

标签: linux filesystems perl

我听说最好不要安装CPAN系统的Perl版本的模块。我知道如何使用命令行安装模块,我只是想知道是否有办法将CPAN与系统的核心Perl分开。

我应该:

下载源代码并专门为这些模块创建一个目录?

任何人都有他们成功使用的任何其他想法或实施?

3 个答案:

答案 0 :(得分:0)

CPAN始终与核心分开 - 请注意/usr/lib/perl5如何具有子目录core_perlvendor_perl(由发行版打包的CPAN模块)和site_perl(本地安装的模块)。

ExtUtils :: MakeMaker Module :: Build 默认将所有内容安装到“site”目录;这也适用于使用cpancpanm命令安装的所有内容。如果您使用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客户端来安装模块。