2017-04-24 79 views
10

有没有一种标准的方法来升级到新的,次要版本(和二进制兼容)的Perl,而无需从源代码完整重新编译?源代码就地升级

例如,如果我的Perl v5.24.0安装了一堆CPAN模块,我可以将此安装升级到v5.24.1,而无需重新编译全新的构建,并对v5下安装的所有CPAN模块执行相同的操作.24.0?还是必须创建一个所有已安装的CPAN模块的列表,编译一个新的Perl,并使用新编译的版本重新安装这些CPAN模块?

我没有看到一个简单的方法来“修补”当前系统,使用最新版本的源代码。 (注意:我想知道是否有一种本地方式来做到这一点(即,不使用perlbrew))。

+1

您不应该需要重新安装模块。 – melpomene

+0

相关:http://modernperlbooks.com/mt/2009/05/perl-5-and-binary-compatibility.html – jm666

+7

不关心反对票。这是StackOverflow,这里有一些用户认为唯一正确的perl问题就像_how在perl_或者类似的方式中颠倒列表,当然还有提供的代码。他们忘记了这里还有关于以下内容的主题([help/on-topic]):程序员常用的_software工具;而且是一个实用的,可回答的问题,对软件开发来说是独一无二的 - 你的问题与上述问题完全一致。 – Nemo

回答

3

如果我有一堆模块CPAN Perl安装v5.24.0,我可以升级此安装到v5.24.1无需重新编译了一个全新的构建

据我所知,没有。你必须从头开始配置/编译/安装新的perl。

并对v5.24.0下安装的所有CPAN模块执行相同操作?

是:Configure问你现有的Perl版本,以及是否应包括在@INC他们的目录。如果你说yes(我相信是默认的),那么你的新perl中可以使用所有已安装的模块。


这就是说:

还是我必须创建所有安装CPAN模块的列表

这很容易与cpan -a

$ cpan -a 
... lots of modules listed here ... 

Wrote bundle file 
    /home/user/.cpan/Bundle/Snapshot_2017_04_25_00.pm 

并用usi重新安装那些CPAN模块新编译的版本?

安装新版本后,运行

$ cpan Bundle::Snapshot_2017_04_25_00 

(或任何名义cpan -a了在上一步中的快照文件),它应该安装在你面前拥有一切。

+0

谢谢。这可以作为解决方案。我仍然感到惊讶,没有一个可以升级到最新次要版本的直接内置。 – secJ