FreeBSD 9.x — обновление perl5.12 или perl5.14 до 5.16 … 5.18

Увидел при очередном обновлении портов что версия Perl5.14 уже считается старой и рекомендацию обновиться.
Как любой порядочный фряшник, полез читать что пишут по этому поводу в /usr/ports/UPDATING и вот что нашел:

20131120:
  AFFECTS: users of lang/perl5.12 lang/perl5.14 lang/perl5.16 and lang/perl5.18
  AUTHOR: mat@FreeBSD.org

  The THREADS option has been enabled by default in all Perl. If you're using
  binary packages you need to do :

    # pkg install -Rf perl5

  If you'
re not using binary packages, and want to switch from non threaded
  Perl to threaded Perl, you need to recompile and reinstall most ports
  depending on Perl. Supposing you have Perl 5.16, you would do:

  Portupgrade users:
    0) Fix pkgdb.db (for safety):
        pkgdb -Ff

    1) Change the option in lang/perl5.16:
        make -C /usr/ports/lang/perl5.16 config

    2) Reinstall everything that depends on Perl:
        portupgrade -fr lang/perl5.16

  Portmaster users:
    1) Change the option in lang/perl5.16:
        make -C /usr/ports/lang/perl5.16 config

    2) Reinstall everything that depends on Perl:
        portmaster -r perl5-

  Note: The installed Perl package was named perl and is now named perl5, if
        you have not updated your installation in a long time, you may need to
        use "perl-" here.

Но проделав все пункты для portupgrade ничего в результате не обновилось, вообще ничего толкового не произошло. Версия Perl осталась прежней — 5.14. Грешил на некий косяк с конкретным сервером, попробовал на втором — тоже самое! Вдоволь покопавшись в инете нашел некоторые рекомендации, которые отработали на ура. Чего и вам желаю.
Так вот что на самом деле нужно сделать чтобы обновить Perl5.12 или Perl5.14 до следующей версии, в моем случае — 5.16.
Сначала по доке:

root@srv3:~# pkgdb -Ff
--->  Checking the package registry database
root@srv3:~#

А потом «финт ушами»:

root@srv3:~# portupgrade -o lang/perl5.16 -f perl5.14\*
** Detected a package name change: perl5.14 (lang/perl5.14) -> 'perl5' (lang/perl5.16)
--->  Upgrading 'perl5.14-5.14.4_5' to 'perl5-5.16.3_7' (lang/perl5.16)
--->  Building '/usr/ports/lang/perl5.16' with make flags: -DDISABLE_CONFLICTS
===>  Cleaning for perl5-5.16.3_7
............длинный вывод всяких букавок...............
http://www.perl.org/
===>  Cleaning for perl5-5.16.3_7
--->  Cleaning out obsolete shared libraries
[Updating the pkgdb <format:bdb_btree> in /var/db/pkg ... - 105 packages found (-0 +1) . done]
You have new mail in /var/mail/root
root@srv3:~#

И уже после этого необходимо обновить весь софт связанный зависимостями с Perl:

root@srv3:~# portupgrade -fr perl5

Ну и вот результат успешного обновления:

root@srv3:~# perl -v

This is perl 5, version 16, subversion 3 (v5.16.3) built for amd64-freebsd-thread-multi

Copyright 1987-2012, Larry Wall

Perl may be copied only under the terms of either the Artistic License or the
GNU General Public License, which may be found in the Perl 5 source kit.

Complete documentation for Perl, including FAQ lists, should be found on
this system using "man perl" or "perldoc perl".  If you have access to the
Internet, point your browser at http://www.perl.org/, the Perl Home Page.

root@srv3:~#

Удачи!

    • Abbat
    • Январь 9th, 2015 3:17дп

    Спасибо за сэкономленное время!

    • Володимир
    • Март 4th, 2015 12:51пп

    Дуже дякую, саме ця стаття допомогла.
    Хай щастить!

  1. Трэкбэков пока нет.

Why ask?