Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/perl/9.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Perl 在一台机器上共享一个cpan_主页是否安全?_Perl_Cpan - Fatal编程技术网

Perl 在一台机器上共享一个cpan_主页是否安全?

Perl 在一台机器上共享一个cpan_主页是否安全?,perl,cpan,Perl,Cpan,我在Linux机器上安装了一个过时的系统perl 5.8.8,并从ActiveState安装了一个5.12.4。perl的cpan\u home都是~root/.cpan。我正要更改新的perl的cpan_home,但后来我意识到我不知道是否真的必须这样做,或者这是否只会导致模块的多个副本下载到不同的目录,而实际上它们可以共享 他们也可以吗?安全吗?关于编辑?或者我必须去单独的cpan\u home目录吗 请注意,我首先尝试了,但失败的原因是,无法加载“../lib/auto/IO/IO.so”

我在Linux机器上安装了一个过时的系统perl 5.8.8,并从ActiveState安装了一个5.12.4。perl的
cpan\u home
都是
~root/.cpan
。我正要更改新的perl的
cpan_home
,但后来我意识到我不知道是否真的必须这样做,或者这是否只会导致模块的多个副本下载到不同的目录,而实际上它们可以共享

他们也可以吗?安全吗?关于编辑?或者我必须去单独的
cpan\u home
目录吗


请注意,我首先尝试了,但失败的原因是,
无法加载“../lib/auto/IO/IO.so”模块IO:../lib/auto/IO/IO.so:错误的ELF类:ELFCLASS64位于../lib/XSLoader.pm第70行。
因此,我没有解决这个问题,而是选择了易于安装的ActivePerl,它们都使用
~/.cpan
。我从来没有遇到过问题,但我不能说它是安全的。这取决于其中的设置。具体来说,

  • build\u dir\u reuse
    应该(可能)为零
  • makepl\u arg
    不应包含
    INSTALL\u BASE
  • mbuildpl\u arg
    不应包含
    --安装底座
“Install base”覆盖安装模块的位置。如果您开始在一个位置安装所有构建的模块,那么由于Perl版本、发行版和构建之间的不兼容,您将遇到问题

如果您想共享
.cpan
并拥有本地安装目录,您可以使用
前缀=/home/username/perl5 LIB=/home/username/perl5/LIB
而不是
install\u BASE=/home/username/perl5
。它使用更智能的目录结构


顺便说一句,local::lib会导致使用“install base”,因此如果在多次安装Perl时使用local::lib,您会遇到问题。

谢谢,ikegami<代码>构建目录\u重用听起来确实有可能混淆事情。不过,我不确定我是否在关注您的wrt
INSTALL\u BASE
。这些设置驻留在
CPAN/Config.pm
中,即使使用单独的
.CPAN
设置,但如果设置错误地相同,您可能会将一个perl模块与另一个perl模块碰撞。另一方面,一个共享的
.cpan
,其中每个perl都有自己合理的
安装库
听起来不错,不是吗?但你比我有更多的代表性,所以你可能更了解……:)它们位于
~/.cpan/cpan/MyConfig.pm
中。不同的版本如何共享配置文件,而不同的版本又有不同的设置?我没有您所指的
~/.cpan/cpan/MyConfig.pm
。当我说
CPAN/Config.pm
时,我指的是
/usr/lib/perl5/5.10/CPAN/Config.pm
(或者任何有关perl的路径)。每个
CPAN/Config.pm
都有相应的perl设置,但它们可能都共享一个
~/.CPAN
目录;至少我认为他们可能,而你说他们在你的系统上有。@Lumi,我在这台机器上的任何安装中都没有
CPAN::Config
(使用Debian和许多perlbrew版本)。一定是发行版添加的内容。您的perlbrew安装肯定不会附带一个,并且
cpan
将在第一次运行时创建
~/.cpan/cpan/MyConfig.pm
,除非您确保先创建
cpan/Config.pm
。如果你要这样做,你最好让他们各自使用不同的目录。