就地Perl从源代码升级

sec*_*ecJ 10 perl

有没有标准的方法升级到新的,次要版本(和二进制兼容)的Perl没有从源完全重新编译?

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

我没有看到使用最新版本的源代码"修补"当前系统的简单方法.(注意:我想知道是否有本地方法来执行此操作(即,不使用perlbrew)).

mel*_*ene 3

如果我安装了带有一堆 CPAN 模块的 Perl v5.24.0,我可以将此安装升级到 v5.24.1 而无需重新编译整个新版本吗

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

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

是:Configure询问您现有的 perl 版本以及是否应将其目录包含在@INC. 如果您选择“是”(我相信这是默认设置),则所有已安装的模块都可以在您的新 perl 中使用。


那是说:

或者我是否必须创建所有已安装的 CPAN 模块的列表

这很容易cpan -a:

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

Wrote bundle file
    /home/user/.cpan/Bundle/Snapshot_2017_04_25_00.pm
Run Code Online (Sandbox Code Playgroud)

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

安装新的 Perl 后,运行

$ cpan Bundle::Snapshot_2017_04_25_00
Run Code Online (Sandbox Code Playgroud)

(或者cpan -a上一步中快照文件的任何名称),它应该安装您之前拥有的所有内容。