17

我想从源代码安装 Perl 版本5.005, v5.6, v5.8,v5.10

现在我已经安装了“v5.10.0”。

/opt/perl/bin
/opt/perl/html
/opt/perl/lib
/opt/perl/man
/opt/perl/lib/5.10.0
/opt/perl/lib/site_perl
/opt/perl/lib/site_perl/5.10.0

如果我全部安装会不会有问题/opt/perl

或者我应该将它们分成自己的、特定于版本的目录吗?像/opt/perl-5.10.0/

4

6 回答 6

15

我将所有的 perl 完全安装在他们自己的目录中,因此他们不会与任何其他 perl 共享任何内容。为此,您只需告诉Configure脚本将所有内容安装在哪里。我喜欢/usr/local/perls

 % ./Configure -des -Dprefix=/usr/local/perls/perl-5.x.y

当我为多个版本执行此操作时,我得到一个具有单独安装的目录。

% ls -1 /usr/local/perls
perl-5.10.0
perl-5.10.1
perl-5.6.2
perl-5.8.8

它们都有自己的 bin 和 lib 目录:

% ls -1 /usr/local/perls/perl-5.10.0
斌
库
男人

如果您使用不同的 perls 调用它们,大多数常用工具都会弄清楚该怎么做:

/usr/local/perls/perl-5.10.0/bin/perl /usr/local/bin/cpan

但是,您可以将最想使用的 perl 放在路径的首位。我只是为 /usr/local/bin/perl 创建了一个符号链接,但您也可以将目录添加到 PATH。

perlbrew为您做了很多这样的工作并移动了符号链接以使其中一个成为默认的 perl。我不使用它,因为它不会让我的生活更轻松。这取决于您自己决定。

于 2009-08-18T00:52:57.773 回答
7

将它们拆分到自己的版本特定目录中,然后符号链接perl到您当时希望使用的版本。这就是安装多个 JRE/JDK 的工作原理,因此对于 Perl 安装似乎也很有意义。

于 2009-08-17T18:26:55.407 回答
2

您确实应该将不同的版本安装到不同的目录中。

当我想尝试作为我最喜欢的 Linux 发行版的包不存在的包的多个版本时,我使用stowxstow作为穷人的包管理器:

  • 创建目录/usr/local/stow
  • 将单个软件包安装到/usr/local/stow/$PACKAGE-$VERSION
  • 将“包”映射到/usr/localstow -d /usr/local/stow $PACKAGE-$VERSION
  • 停用“包”:stow -d /usr/local/stow -D $PACKAGE-$VERSION

stow它通过创建和操作符号链接来完成工作,并且能够检测冲突。

于 2009-08-17T18:49:32.630 回答
2

如果您使用的是 CentOS/RHEL 服务器,您可以使用相对较新的 Software Collection 系统来安装“系统 Perl”(这是 EL6 上的古老 5.10 和 EL5 上的 5.8)之外的其他版本的 Perl。

有一组核心 Perl 5.16 软件包的公共存储库:

http://mirror.centos.org/centos/6/SCL/x86_64/

社区正在努力将更大的 CPAN 子集发布为可安装包,并为其他版本的 Perl 发布集合。

于 2014-04-09T16:47:59.407 回答
0

我们在工作中使用多个版本的 Perl 进行开发,单独的目录是要走的路。我们设置了一个小的 shell 命令来修复符号链接和环境变量,以便您可以轻松使用所需的 perl。

如果您担心忘记正在使用哪个 perl,您可以让这样的脚本在您的 shell 提示符中添加一个版本号。

于 2009-08-17T18:41:50.133 回答
0

虽然安装到不同的目录通常是一种更好的方法,但您可以使用配置开关-Dversiononly来使用单个目录并在所有路径名中包含版本三元组(除了 man 文件,您可能希望完全避免安装),给出你例如 a perl5.10.0, cpan5.10.0, perldoc5.10.0, 等等。

于 2009-08-18T02:19:03.770 回答