我在Linux机器上有一个日期系统perl 5.8.8,并从ActiveState安装了一个5.12.4。 perl的cpan_home
都是~root/.cpan
。我正要更改新的perl cpan_home
,但后来我意识到我没有知道我是否真的必须这样做,或者它是否只会导致下载多个模块副本事实上,他们可以分享到不同的目录。
他们也可以吗?安全吗?关于编译?或者我是否必须选择单独的cpan_home
目录?
请注意,我首先尝试perlbrew,但失败了Can't load '../lib/auto/IO/IO.so' for module IO: ../lib/auto/IO/IO.so: wrong ELF class: ELFCLASS64 at ../lib/XSLoader.pm line 70.
因此,我没有采用问题,而是选择了ActivePerl,它可以轻松安装。
答案 0 :(得分:5)
我的系统上有十几个Perl版本,它们都使用~/.cpan
。我从未遇到过问题,但我不能说这是安全的。这取决于其中的设置。具体来说,
build_dir_reuse
应该(可能)为零。makepl_arg
不应包含INSTALL_BASE
。mbuildpl_arg
不应包含--install_base
。“安装基础”覆盖安装模块的位置。如果您开始在一个位置安装所有构建的模块,则由于Perl的版本,发行版和构建版本之间不兼容而存在问题。
如果您想共享.cpan
并拥有本地安装目录,则可以使用PREFIX=/home/username/perl5 LIB=/home/username/perl5/lib
代替INSTALL_BASE=/home/username/perl5
。它使用更智能的目录结构。
顺便说一下,local :: lib导致使用“install base”,所以如果你使用带有多个Perl安装的local :: lib,你会遇到问题。