Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/database/8.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
如何安装多个Perl版本而不让它们互相绊倒';s XS模块?_Perl_Compatibility_Multiple Versions_Perlbrew - Fatal编程技术网

如何安装多个Perl版本而不让它们互相绊倒';s XS模块?

如何安装多个Perl版本而不让它们互相绊倒';s XS模块?,perl,compatibility,multiple-versions,perlbrew,Perl,Compatibility,Multiple Versions,Perlbrew,我想在我的主目录中安装几个不同版本的perl。我尝试使用,但一个版本的XS模块导致另一个版本出现SEGFULTS。有没有办法安装多个版本的perl并让它们自动保持XS模块的独立性?您可以将每个perl安装与任何其他perl安装完全分开。它的二进制文件和模块将彼此完全分离。基本上,当您安装每个perl时,都会给它自己的前缀: $ ./Configure -des -Dprefix=/usr/local/perls/perl-5.12.1 所有内容都安装在该前缀下,bin/中的所有程序都将使用该

我想在我的主目录中安装几个不同版本的perl。我尝试使用,但一个版本的XS模块导致另一个版本出现SEGFULTS。有没有办法安装多个版本的perl并让它们自动保持XS模块的独立性?

您可以将每个perl安装与任何其他perl安装完全分开。它的二进制文件和模块将彼此完全分离。基本上,当您安装每个perl时,都会给它自己的前缀:

 $ ./Configure -des -Dprefix=/usr/local/perls/perl-5.12.1
所有内容都安装在该前缀下,bin/中的所有程序都将使用该特定的perl。我将在有效的Perl编程中对此进行更深入的探讨

从那里开始,我在~/bin中为每个程序创建符号链接,并将版本号附加到其中,因此我有~/perl5.12.1、perldoc5.12.1等等。我不必选择perlbrew希望你选择的版本。我在Efficient Perler博客上写了更多关于这方面的内容


您可能可以使用local::lib实现这一点,但它实际上是为您设计的,可以使用一个版本的Perl并使用一个个人库目录。您可以告诉它使用另一个目录,但在这一点上,与传统方法相比,它实际上并没有为您节省任何东西。

事实上,我刚刚记得我还使用了local::lib。也许他们互动不好。我将尝试禁用它。嗯,看起来local::lib和perlbrew在一起玩得不好。这似乎是我的问题。感谢您澄清local::lib仅适用于单个版本,这可能是重复的。我已经禁用了local::lib和perlbrew,它们自己似乎做得很好;最后我安装了一个perl,它将所有的lib放在正确的位置,但仍然使用/usr/local/bin作为可执行文件。我还没有回去看看发生了什么,所以我只是在脚注中提到这一点,提醒大家注意通过-es生成的配置。那么,本地::lib是否有方法可以正确地处理多个perl版本和XS模块,或者我应该禁用它,让perlbrew来处理所有事情呢,我不使用local::lib或perlbrew。所以,这是我的意见。:)