【问题标题】:How should I install more than one version of Perl?我应该如何安装多个版本的 Perl?
【发布时间】:2009-08-17 18:22:38
【问题描述】:

我想从源代码安装 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/

【问题讨论】:

标签: perl directory installation multiple-versions


【解决方案1】:

我将所有的 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。我不使用它,因为它不会让我的生活更轻松。不过,这取决于您自己的决定。

【讨论】:

  • /usr/local/perls/bin 可能是将符号链接放置到特定于版本的 Perls 的好地方。然后我只需要将它添加到PATH
  • -1 :: 如果还提到如何在多个 Perl 安装中使用 cpan 会更有帮助。
  • 只需调用相应 bin 目录中的 cpan 脚​​本,就像调用不同的 perl 程序一样。
  • 这就是我的管理方式。除了使用/opt/perl-5.16.0。具有/opt/perl/bin/perl-5.16.0/opt/perl-5.16.0/bin/perl 的别名,以及其他别名。
  • 这个答案仍然正确吗?使用 5.28,我得到 /usr/local/bin is not writable by you(使用我可写且完全在 /usr/local/bin 之外的前缀)
【解决方案2】:

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

【讨论】:

    【解决方案3】:

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

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

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

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

    【讨论】:

    • 有关 GNU Stow 的更多信息,请访问the Stow home page。我正在积极维护它。
    【解决方案4】:

    如果您使用的是 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 发布集合。

    【讨论】:

      【解决方案5】:

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

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

      【讨论】:

        【解决方案6】:

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

        【讨论】:

          猜你喜欢
          • 2020-07-11
          • 2021-03-23
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          • 2015-03-31
          • 1970-01-01
          • 2017-09-18
          • 1970-01-01
          相关资源
          最近更新 更多