Обновление на месте Perl от источника

Есть ли стандартный способ обновления до новой, младшей версии (и двоичной совместимости) Perl без полной перекомпиляции из исходного кода?

Например, если у меня установлен Perl v5.24.0 с кучей модулей CPAN, могу ли я обновить эту установку до версии v5.24.1 без перекомпиляции целой новой сборки и сделать то же самое для всех модулей CPAN, установленных в версии v5. 24,0? Или мне нужно создать список всех установленных модулей CPAN, скомпилировать новый Perl и переустановить эти модули CPAN с помощью новой скомпилированной версии?

Я не вижу простой способ "запланировать" текущую систему, используя исходный код последней версии. (Примечание: мне интересно, есть ли у вас собственный способ сделать это (т.е. Не использовать perlbrew)).

Ответ 1

Если у меня установлен Perl v5.24.0 с кучей модулей CPAN, могу ли я обновить эту установку до версии v5.24.1 без перекомпиляции целой новой сборки

Насколько я знаю, нет. Вы должны настроить/скомпилировать/установить новый perl с нуля.

и сделать то же самое для всех модулей CPAN, установленных в версии v5.24.0?

Да: 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

и переустановите эти модули CPAN с помощью новой скомпилированной версии?

После установки нового Perl запустите

$ cpan Bundle::Snapshot_2017_04_25_00

(или другое имя cpan -a предоставило файл моментального снимка на предыдущем шаге), и он должен установить все, что у вас было до этого.

Ответ 2

Если вы используете perlbrew, он имеет команду "upgrade-perl". Недостатком является то, что исходные параметры конфигурации по-прежнему не передаются в новую версию. См. Также http://www.modernperlbooks.com/mt/2013/03/upgrade-in-place-with-perlbrew.html