代码之家  ›  专栏  ›  技术社区  ›  Brad Gilbert

如何安装多个版本的Perl?

  •  16
  • Brad Gilbert  · 技术社区  · 15 年前

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

    6 回复  |  直到 10 年前
        1
  •  14
  •   brian d foy    10 年前

    我将所有Perl完全安装在它们自己的目录中,这样它们就不会与任何其他Perl共享任何内容。要做到这一点,你只要告诉 Configure 编写安装所有内容的脚本。我喜欢 /usr/本地/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
    

    如果您使用不同的Perl来调用它们,那么大多数常用的工具都会知道该怎么做:

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

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

    这个 perlbrew 为您做了很多这方面的工作,并四处移动符号链接,使其中一个成为默认的Perl。

        2
  •  7
  •   Sinan Ünür    15 年前

    将它们分割成各自特定于版本的目录,然后symlink perl 到您当时想要使用的版本。这就是安装多个JRE/JDK的工作原理,因此对于Perl安装来说似乎也有意义。

        3
  •  2
  •   hillu    15 年前

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

    当我想尝试一个不作为我最喜欢的Linux发行版的包存在的包的多个版本时,我使用 stow xstow 作为一个穷人的包裹经理:

    • 创建目录 /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

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

        4
  •  2
  •   fozzmoo    10 年前

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

    有一组核心Perl5.16包的公共存储库:

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

    社区正致力于以可安装包的形式发布CPAN的较大子集,并为其他版本的Perl发布集合。

        5
  •  0
  •   Brad Gilbert    15 年前

    我们在这里使用Perl的多个版本进行开发,而单独的目录是一种方法。我们设置了一个小的shell命令,它修复了符号链接和环境变量,这样您就可以轻松地使用所需的Perl。

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

        6
  •  0
  •   Brad Gilbert    15 年前

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