2

我在 Linux 机器上有一个过时的系统 perl 5.8.8,并从 ActiveState 安装了一个 5.12.4。两个 perlcpan_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,它很容易安装。

4

1 回答 1

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 会导致使用“安装库”,因此如果您将 local::lib 与多个 Perl 安装一起使用,则会遇到问题。

于 2012-02-14T18:09:14.047 回答