Linux 安装CPAN模块时不要弄乱系统Perl安装

Linux 安装CPAN模块时不要弄乱系统Perl安装,linux,filesystems,perl,Linux,Filesystems,Perl,我听说最好不要在系统版本为Perl的CPAN上安装模块。我知道如何使用命令行安装模块,我只是想知道是否有办法将CPAN与系统的核心Perl分开 我应该: 下载源代码并专门为这些模块创建目录 任何人都有他们成功使用的其他想法或实现吗?CPAN总是与core分开的–请注意/usr/lib/perl5有多个子目录core\u perl,供应商\u perl(由发行版打包的CPAN模块)和site\u perl(本地安装的模块) ExtUtils::MakeMaker和Module::Build都默认将

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

我应该:

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


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

CPAN总是与core分开的–请注意
/usr/lib/perl5
有多个子目录
core\u perl
供应商\u perl
(由发行版打包的CPAN模块)和
site\u perl
(本地安装的模块)

ExtUtils::MakeMaker和Module::Build都默认将所有内容安装到“site”目录中;这也适用于使用
cpan
cpanm
命令安装的所有内容。如果您使用Linux发行版的软件包,它们将转到“供应商”路径

您可以使用以下方法指定不同的安装位置(例如,将所有CPAN模块保留在主目录中):


在系统目录中安装时所冒的风险是,每个与系统相关的Perl脚本都将使用这些模块。如果其中一个模块是系统使用的模块的更新且不兼容的版本,那么您将不会满意

建议在私有目录中安装的方法是使用local::lib。请参阅引导技术:


一旦你设置了local::lib,你就可以使用任何一个标准的CPAN客户端来安装模块。

@KarthikT我想我会在这两个站点上得到意见。我应该关闭这一个吗?我不确定在这种情况下的规则,你可以暂时保留它,它不是一个精确的副本吗?我想我会在这两个网站上得到意见。请适当关闭或删除。我不知道问的规则。
dir=~/perl5

export PERL5LIB="${dir}"
export PERL_MM_OPT="INSTALL_BASE='${dir}'"
export PERL_MB_OPT="--install-base '${dir}'"