Категорії
Misc, staff, other

Обновление perl

Обновлена 27.06.2013

И так, пришло время обновить perl, ибо сказано:

С выходом версии perl 5.14 официально объявлено об окончании поддержки Perl 5.10

Поскольку этот процесс может затянуться и не всегда так прост, как кажется, то я опишу несколько моментов этого чуда.

Лучше всего обновлять так, как написано в UPDATING. Вот пример commit’a 20110517:

Внимание!

Если у вас нету perl-after-upgrade, то его убрали по причине надобности. Вот, что было написано в одной из рассылок:

perl-after-upgrade больше не нужен.

Для обновления 5.16.3 -> 5.16.x (x > 3) пересобирать модули не нужно будет.

Раньше модули устанавливались в папку x.y.z и для обновления 5.16.0 на 5.16.1 нужно было запускать perl-after-upgrade чтобы он переместил установленные модули из директории 5.16.0 в 5.16.1

Сейчас модули ставятся в x.y и если при обновлении перла меняется только последняя цифра никаких дополнительных действий не потребуется.

Для обновления с x.y на x.z (например с 5.16 на 5.18) все равно придется пересобирать все модули, как минимум потому что меняется ABI для XS-модулей. 

 

Portupgrade users:

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

Примечание.

В этом коммите допущена ошибка в названии пакета perl5.12, а именно добавлено тире. В варианте ниже, я убрал тире. Будьте внимательны

1) Reinstall new version of Perl (5.14):
env DISABLE_CONFLICTS=1 portupgrade -o lang/perl5.14 -f perl5.12.\*

2) Reinstall everything that depends on Perl:
portupgrade -fr perl

Portmaster users:

portmaster -o lang/perl5.14 lang/perl5.12

Conservative:
portmaster p5-

Comprehensive (but perhaps overkill):
portmaster -r perl-

Note: If the "perl-" glob matches more than one port you will need to
specify the name of the Perl directory in /var/db/pkg explicitly.

Но вместо выполнения ручной или автоматической пересборки пакетов, которые требуют perl, можно выполнить команду:

#perl-after-upgrade -f

Это скрипт, написанный на perl’e и идущий с ним в комплекте.

Ложка дёгтя.

Учтите, что при обновлении могут появится проблемы, например, со SpamAssassin’ом, как в этом примере ( http://www.freebsd.org/cgi/query-pr.cgi?pr=157256 )

2 коментарі “Обновление perl”

Это не ошибка, тире в названии пакета perl5.12 всё-таки нужно, т.к. в системе он зарегистрирован именно с тире, а без тире это каталог в портах

env DISABLE_CONFLICTS=1 portupgrade -o lang/perl5.14 -f perl5.12.\*

env DISABLE_CONFLICTS=1 portupgrade -o lang/perl5.20 -f perl\* && portupgrade -fr perl

Это для себя – чтобы строку не редактировать каждый раз, по поиску в первых результатах по кейвордам freebsd perl upgrade

Залишити відповідь

Ваша e-mail адреса не оприлюднюватиметься. Обов’язкові поля позначені *

Домашняя страничка Andy
Записки молодого админа
Самостоятельная подготовка к Cisco CCNA
Самостоятельная подготовка к Cisco CCNP
Powered by Muff