我应该如何安装多个版本的Perl?

时间:2009-08-17 18:22:39

标签: perl installation directory install multiple-versions

我想从源代码安装Perl版本5.005v5.6v5.8v5.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/

一样

6 个答案:

答案 0 :(得分:14)

我将所有perls完全安装在他们自己的目录中,这样他们就不会与任何其他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
bin
lib
man

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

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

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

perlbrew为你做了很多这样的事情并移动了符号链接,使其中一个成为默认的perl。

答案 1 :(得分:7)

将它们拆分为自己的特定于版本的目录,然后将符号链接perl分割为您当时要使用的版本。这是安装多个JRE / JDK的方式,因此对于Perl安装似乎也有意义。

答案 2 :(得分: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通过创建和操作符号链接来完成其工作,并且能够检测冲突。

答案 3 :(得分:2)

如果您正在使用CentOS / RHEL服务器,除了“系统Perl”(EL6上的古老5.10和EL5上的5.8)之外,您还可以使用相对较新的软件集合系统来安装其他版本的Perl。

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

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

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

答案 4 :(得分:0)

我们在这里开发了多个版本的Perl,并且可以使用单独的目录。我们设置了一个小shell命令来修复符号链接和环境变量,这样你就可以轻松使用你想要的perl。

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

答案 5 :(得分:0)

虽然安装到不同的目录通常是更好的方法,但您可以使用配置开关-Dversiononly来使用单个目录并在所有路径名中包含版本三元组(man文件除外,您可能我想完全避免安装), 例如,为您提供perl5.10.0cpan5.10.0perldoc5.10.0