Есть почтовый сервер (postfix, dovecot, mysql, rspamd) на freebsd 11.2
Столкнулись тут с проблемой после обновления софта.
Так-то, на первый взгляд, все взлетело вроде и почта работает, кроме веб-морды (ее правда и запускать даже не пытался) в связи с печалькой с php, т.е.# portupgrade -arR
[Reading data from pkg(8) ... - 141 packages found - done]
** Port deleted on 2019-01-01: databases/php56-mysql
Has expired: Security Support ends on 31 Dec 2018
** Port deleted on 2019-01-01: devel/pecl-intl
Has expired: Works only with EOL php 5.6
** Package origin of 'php56-pdo_mysql' has been changed: 'databases/php56-pdo_mysql' -> 'databases/php72-pdo_mysql'
---> Skipping 'databases/php72-pdo_mysql' (php56-pdo_mysql-5.6.38) because a requisite package 'php56-mysql-5.6.38' (databases/php56-mysql) failed (specify -k to force)
---> Skipping 'mail/roundcube' (roundcube-php56-1.3.8,1) because a requisite package 'php56-pecl-intl-3.0.0_16' (devel/pecl-intl) failed (specify -k to force)
** Listing the failed packages (-:ignored / *:skipped / !:failed)
- databases/php56-mysql (port deleted)
- devel/pecl-intl (port deleted)
* databases/php72-pdo_mysql (php56-pdo_mysql-5.6.38)
* mail/roundcube (roundcube-php56-1.3.8,1)Соответственно, из того, что не обновилось, видим это:
perl5-5.26.3 < needs updating (index has 5.28.1)
php56-mysql-5.6.38 ? orphaned: databases/php56-mysql
php56-pdo_mysql-5.6.38 ? orphaned: databases/php56-pdo_mysql
php56-pecl-intl-3.0.0_16 ? orphaned: devel/pecl-intl
roundcube-php56-1.3.8,1 ? orphaned: mail/roundcubeНу перл, вероятно, опять перешел на другую основную ветку, надо посмотреть, во вряд ли он тут имеет отношение к этому безобразию, а вот с roundcube'ом что посоветуете сделать в такой ситуации? Попробовать сделать make deinstall для roundcube и заново переставить roundcube (этого хватит в такой ситуации?) или как-то можно вылечить, но так, чтобы потом все обновлялось?
> ** Port deleted on 2019-01-01: databases/php56-mysql
> Has expired: Security Support ends on 31 Dec 2018
> ** Port deleted on 2019-01-01: devel/pecl-intl
> Has expired: Works only with EOL php 5.6
> Ну перл, вероятно, опять перешел на другую основную ветку, надо посмотреть, во
> вряд ли он тут имеет отношение к этому безобразию,И Вас с Новым годом!!! :)
>[оверквотинг удален]
> ? orphaned: databases/php56-pdo_mysql
> php56-pecl-intl-3.0.0_16 ?
> orphaned: devel/pecl-intl
> roundcube-php56-1.3.8,1
> ? orphaned: mail/roundcube
> Ну перл, вероятно, опять перешел на другую основную ветку, надо посмотреть, во
> вряд ли он тут имеет отношение к этому безобразию, а вот
> с roundcube'ом что посоветуете сделать в такой ситуации? Попробовать сделать make
> deinstall для roundcube и заново переставить roundcube (этого хватит в такой
> ситуации?) или как-то можно вылечить, но так, чтобы потом все обновлялось?# less /usr/ports/UPDATING
perl default 5.28
php default с 5.6 на 7.2в чем проблема выполнить апгрейд perl и php, а
затем и roundcube, попутно поднять mysql минорную версию
>[оверквотинг удален]
>> Ну перл, вероятно, опять перешел на другую основную ветку, надо посмотреть, во
>> вряд ли он тут имеет отношение к этому безобразию, а вот
>> с roundcube'ом что посоветуете сделать в такой ситуации? Попробовать сделать make
>> deinstall для roundcube и заново переставить roundcube (этого хватит в такой
>> ситуации?) или как-то можно вылечить, но так, чтобы потом все обновлялось?
> # less /usr/ports/UPDATING
> perl default 5.28
> php default с 5.6 на 7.2
> в чем проблема выполнить апгрейд perl и php, а
> затем и roundcube, попутно поднять mysql минорную версиюэээ, да нет проблем, как говорится no problems,
но это когда знаешь что делать и как делать, а если не знаешь, да ещё и забудешь (с перепугу),
вон как ТС, растерялся и ага, летальный исход ))под твоим чутким руководством, lavr, все проблемы решаются, мелочными и незначительными кажутся,
я серьёзно, без лести и подхалимажа, спасибо, что помогаешь своими советамиofftopic
читаю и офигиваю - roundcube это как?? круглый куб?
квадратное катать, а круглое кантовать?а это - orphaned - осиротерший!
у меня вопрос - что они все курят??и да, что бы два раза не вставать - всех с НГ!!
> эээ, да нет проблем, как говорится no problems,
> но это когда знаешь что делать и как делать, а если не
> знаешь, да ещё и забудешь (с перепугу),
> вон как ТС, растерялся и ага, летальный исход ))Так /usr/ports/UPDATING стоит регулярно читать или хотя бы заглядывать туда первым делом после таких вот ситуаций. Там все инструкции есть по порядку обновления. Ну и гугл в помощь...
> offtopic
> читаю и офигиваю - roundcube это как?? круглый куб?
> квадратное катать, а круглое кантовать?"Непереводимая игра слов" (с)
> а это - orphaned - осиротерший!
Термин применим к компьютерным программам, которые были заброшены разработчиком(ами)
> Так /usr/ports/UPDATING стоит регулярно читать или хотя бы заглядывать туда первым делом
> после таких вот ситуаций. Там все инструкции есть по порядку обновления.
> Ну и гугл в помощь...
>> offtopic
>> читаю и офигиваю - roundcube это как?? круглый куб?
>> квадратное катать, а круглое кантовать?
> "Непереводимая игра слов" (с)
>> а это - orphaned - осиротерший!
> Термин применим к компьютерным программам, которые были заброшены разработчиком(ами)Терзавшие меня смутные подозрения - подтвердились.
Спасибо, пошел читать /usr/ports/UPDATING
>[оверквотинг удален]
>> php default с 5.6 на 7.2
>> в чем проблема выполнить апгрейд perl и php, а
>> затем и roundcube, попутно поднять mysql минорную версию
> эээ, да нет проблем, как говорится no problems,
> но это когда знаешь что делать и как делать, а если не
> знаешь, да ещё и забудешь (с перепугу),
> вон как ТС, растерялся и ага, летальный исход ))
> под твоим чутким руководством, lavr, все проблемы решаются, мелочными и незначительными
> кажутся,
> я серьёзно, без лести и подхалимажа, спасибо, что помогаешь своими советамитак основная масса проблем действительно незначительная, апгрейд perl и php,
апгрейд mysql и вовсе минорный, roundcube - особых проблем не вижу.Ну ведь реально ничего сложного, чисто поддержать морально.
> и да, что бы два раза не вставать - всех с НГ!!
Взаимно.
> так основная масса проблем действительно незначительная, апгрейд perl и php,
> апгрейд mysql и вовсе минорный, roundcube - особых проблем не вижу.
> Ну ведь реально ничего сложного, чисто поддержать морально.Спасибо за наводку, а можно обнаглеть на НГ и чуть-чуть подробнее расспросить?
Ну с перлом, формально, проблем не видеться, у них там есть вроде адекватная инструкция 20161103 в /usr/ports/UPDATING + когда-то это уже делалось для предыдущей версии.
т.е. в моем случае, по идеи должно быть что-то типа:
в /etc/make.conf указать DEFAULT_VERSIONS+= perl5=5.28
portupgrade -o lang/perl5.28 -f lang/perl5.26
убрать DEFAULT_VERSIONS из /etc/make.conf
portupgrade -f `pkg shlib -qR libperl.so.5.26`
и в теории, с перлом - это все. Остается вопрос только - обновлять последовательно сначала perl, а потом php или как правильно? Перл оставить напоследок, когда из необновленного останется только он или как?Что касается обновления php5.6 то есть некоторая непонятка для меня.
Есть довольно условные инструкции 20180905 и 20181022.
В 20180905 сказано:
The default version of PHP has been switched from 5.6 to 7.1.
If you use binary packages you should make a list of php packages before running 'pkg upgrade':# pkg info php5\* > ~/installed-php-ports-list
After the upgrade, check with such list if all your php extensions
are still installed, and reinstall them if needed.
If you use mod_php56 you need to deinstall it and install mod_php71.В 20181022 сказано:
The default version of PHP has been switched from 7.1 to 7.2.
If you use binary packages you should make a list of php packages before running 'pkg upgrade':# pkg info php7\* > ~/installed-php-ports-list
After the upgrade, check with such list if all your php extensions
are still installed, and reinstall them if needed.
If you use mod_php71 you need to deinstall it and install mod_php72.В связи с этим и возникают мои непонятки с php. С учетом того, что у меня собрано все на портах, то мои то какие будут действия в связи с этим?
Ну допустим, DEFAULT_VERSIONS+= php=7.2 я загоню в /etc/make.conf
Дальше, наверное, надо аналогично с перлом portupgrade -o lang/php5.6 -f lang/php7.2 или нет?
А вот дальше то что делать с php?
> А вот дальше то что делать с php?кстати, сам то php 7.2 вроде как и так стоит нормально судя по pkg info, т.ч. вопрос только по кускам с 5.6
php56-mysql-5.6.38 The mysql shared extension for php
php56-pdo_mysql-5.6.38 The pdo_mysql shared extension for php
php56-pecl-intl-3.0.0_16 PECL extension to support Internationalization(IC U)
php72-7.2.13 PHP Scripting Language
php72-dom-7.2.13 The dom shared extension for php
php72-exif-7.2.13 The exif shared extension for php
php72-fileinfo-7.2.13 The fileinfo shared extension for php
php72-filter-7.2.13 The filter shared extension for php
php72-iconv-7.2.13 The iconv shared extension for php
php72-json-7.2.13 The json shared extension for php
php72-mbstring-7.2.13 The mbstring shared extension for php
php72-openssl-7.2.13 The openssl shared extension for php
php72-pdo-7.2.13 The pdo shared extension for php
php72-pspell-7.2.13 The pspell shared extension for php
php72-session-7.2.13 The session shared extension for php
php72-xml-7.2.13 The xml shared extension for php
php72-zip-7.2.13 The zip shared extension for php
Да снесите все, что связано с php56, да пересоберите все порты через portupgrade -afrR, нужный софт и подтянится, а в будущем поступайте как советует lavr, т.е. сначало читаем updating
> и в теории, с перлом - это все. Остается вопрос только -
> обновлять последовательно сначала perl, а потом php или как правильно? Перл
> оставить напоследок, когда из необновленного останется только он или как?Без разницы, имхо
> Ну допустим, DEFAULT_VERSIONS+= php=7.2 я загоню в /etc/make.conf
> Дальше, наверное, надо аналогично с перлом portupgrade -o lang/php5.6 -f lang/php7.2 или
> нет?
> А вот дальше то что делать с php?С portupgrade вроде бы должно прокатить
portupgrade php\*
Можно еще порыться в UPDATING - наверняка где-то уже было расписано какое-то крупное обновление php через порты.
Ну или можно пойти долгим путем -
pkg info | grep php
И далее медленно и печально ручками переустанавливаем все порты из полученного списка... хотя наверняка большая часть переустановится через lang/php7x-extensions
>[оверквотинг удален]
> адекватная инструкция 20161103 в /usr/ports/UPDATING + когда-то это уже делалось для
> предыдущей версии.
> т.е. в моем случае, по идеи должно быть что-то типа:
> в /etc/make.conf указать DEFAULT_VERSIONS+= perl5=5.28
> portupgrade -o lang/perl5.28 -f lang/perl5.26
> убрать DEFAULT_VERSIONS из /etc/make.conf
> portupgrade -f `pkg shlib -qR libperl.so.5.26`
> и в теории, с перлом - это все. Остается вопрос только -
> обновлять последовательно сначала perl, а потом php или как правильно? Перл
> оставить напоследок, когда из необновленного останется только он или как?1. Апгрейд Perl 5.26 до 5.28
a) выставить в /etc/make.conf
DEFAULT_VERSIONS+= perl5=5.28эта строка вставляется только для пересборки всего что использует perl
# portupgrade -o lang/perl5.26 -f lang/perl5.28
выполнили, после чего удалить верхнюю строку из /etc/make.conf
и
b) обновить все что использует старую динамическую библиотеку perl# portupgrade -f `pkg shlib -qR libperl.so.5.26`
проверить что убрали все лишнее из /etc/make.conf - указанную выше строку
>[оверквотинг удален]
> are still installed, and reinstall them if needed.
> If you use mod_php71 you need to deinstall it and
> install mod_php72.
> В связи с этим и возникают мои непонятки с php. С учетом
> того, что у меня собрано все на портах, то мои то
> какие будут действия в связи с этим?
> Ну допустим, DEFAULT_VERSIONS+= php=7.2 я загоню в /etc/make.conf
> Дальше, наверное, надо аналогично с перлом portupgrade -o lang/php5.6 -f lang/php7.2 или
> нет?
> А вот дальше то что делать с php?2) Перед апгрейдом PHP, необходим апгрейд mysql
3) с PHP проще чем с Perl, ничего не нужно заносить в /etc/make.conf
На всякий случай создать список пакетов, это нужно делать перед апгрейдом:
# pkg info php56\* > list_php56.logа далее:
# portupgrade php\*
проверить успешно проапгрейдилось?- проверить сборку apache перед сборкой mod_phpXY
- если нужно, удалить mod_php56 и собрать mod_php72В /etc/make.conf вообще ничего не нужно заносить, Perl исключение,
переопределение DEFAULT_VERSIONS обычно делают если хотят остаться
на старых версиях ПО.Все текущие DEFAULTS определены в:
# less /usr/ports/Mk/bsd.default-versions.mk
> 2) Перед апгрейдом PHP, необходим апгрейд mysqlИзвиняюсь за назойливость. Просто пока обновляется перл решил уточнить этот момент.
У меня mariadb стоит и она в принципе обновилась при той попытке обновления и так:
mariadb101-client-10.1.37_2 =
mariadb101-server-10.1.37_2 =
Или вы имеете ввиду, что ее нужно апргейдить на какуй-то другую версию?
Перл, как и предполагалось, нормально поставился, а вот с php пока не ясно.
Если просто делать
# portupgrade php\*
[Reading data from pkg(8) ... - 142 packages found - done]
** Port deleted on 2019-01-01: databases/php56-mysql
Has expired: Security Support ends on 31 Dec 2018
** Port deleted on 2019-01-01: devel/pecl-intl
Has expired: Works only with EOL php 5.6
** Package origin of 'php56-pdo_mysql' has been changed: 'databases/php56-pdo_mysql' -> 'databases/php72-pdo_mysql'
---> Skipping 'databases/php72-pdo_mysql' (php56-pdo_mysql-5.6.38) because a requisite package 'php56-mysql-5.6.38' (databases/php56-mysql) failed (specify -k to force)
** Listing the failed packages (-:ignored / *:skipped / !:failed)
- databases/php56-mysql (port deleted)
- devel/pecl-intl (port deleted)
* databases/php72-pdo_mysql (php56-pdo_mysql-5.6.38)то видим ту же ругань.
При этом:
mariadb101-client-10.1.37_2 =
mariadb101-server-10.1.37_2 =
стоят последние, но в /usr/ports/Mk/bsd.default-versions.mk стоит параметр:
# Possible values: 5.5, 5.6, 5.7, 8.0, 5.5m, 10.0m, 10.1m, 10.2m, 10.3m, 5.5p, 5.6p, 5.7p, 5.6w
MYSQL_DEFAULT?= 5.6
> Перл, как и предполагалось, нормально поставился, а вот с php пока не
> ясно.
> Если просто делать
> # portupgrade php\*
> [Reading data from pkg(8) ... - 142 packages found - done]
> ** Port deleted on 2019-01-01: databases/php56-mysql
> Has expired: Security Support
> ends on 31 Dec 2018порт удален 2019-01-01: databases/php56-mysql
в виду завершения поддержки Security ... - что тут непонятно?> ** Port deleted on 2019-01-01: devel/pecl-intl
> Has expired: Works only
> with EOL php 5.6порт удален всвязи с EOL php 5.6 - тоже все понятно
> ** Package origin of 'php56-pdo_mysql' has been changed: 'databases/php56-pdo_mysql'
> -> 'databases/php72-pdo_mysql'
> ---> Skipping 'databases/php72-pdo_mysql' (php56-pdo_mysql-5.6.38) because a requisite
> package 'php56-mysql-5.6.38' (databases/php56-mysql) failed (specify -k to force)
> ** Listing the failed packages (-:ignored / *:skipped / !:failed)
> - databases/php56-mysql (port deleted)php56-pdo_mysql был заменен на databases/php56-pdo_mysql, а php56-mysql удален
ну и так далее...
> - devel/pecl-intl (port deleted)
> * databases/php72-pdo_mysql (php56-pdo_mysql-5.6.38)
> то видим ту же ругань.ничего страшного и удивительного выше мы не увидили.
> ничего страшного и удивительного выше мы не увидели.Запутали вы меня немного.
Так вывод то какой из этого всего следует?
Как предложил "Аноним" удалить все три
php56-mysql-5.6.38 ? orphaned: databases/php56-mysql
php56-pdo_mysql-5.6.38 ? orphaned: databases/php56-pdo_mysql
php56-pecl-intl-3.0.0_16 ? orphaned: devel/pecl-intl
через pkg delete, несмотря на то, что ставилось портами, а потом, как предложил Сергей в 11 ответе сделать portupgrade -afrR ?
И после этого уже смотреть, обновился roundcube, который
roundcube-php56-1.3.8,1 ? orphaned: mail/roundcube
или нет?
> или нет?или грохать и раункуб, потом portupgrade
и roundcube заново ставить?
>[оверквотинг удален]
> Так вывод то какой из этого всего следует?
> Как предложил "Аноним" удалить все три
> php56-mysql-5.6.38
> ? orphaned: databases/php56-mysql
> php56-pdo_mysql-5.6.38
> ? orphaned: databases/php56-pdo_mysql
> php56-pecl-intl-3.0.0_16 ?
> orphaned: devel/pecl-intl
> через pkg delete, несмотря на то, что ставилось портами, а потом, как
> предложил Сергей в 11 ответе сделать portupgrade -afrR ?1) все что устанавливается из портов, регистрируется в локальном
репозитории пакетов, значит правильно удалять - используя пакетный
менеджер pkg
2) не вижу проблем удалить php56-xy через pkg delete
3) не вижу проблем собрать php72-модули через portupgrade> И после этого уже смотреть, обновился roundcube, который
> roundcube-php56-1.3.8,1
> ? orphaned: mail/roundcube
> или нет?нет проблем удалить roundcube-php56 через pkg delete
и затем собрать с помощью portupgrade, при этом по зависимостям
подтянуться нужные модули php72ps. Запутать можно только неуверенного, выдохните, сделайте
перерыв и немного напрягите серое вещество, увидите что
ничего сложного.
В общем, я просто грохнул все остатки с php56, включая раундкуб.
Переставил его, пересобрал php72-extension...
Вроде все работает, на первый взгляд...
Спасибо всем за помощь. С Новым Годом, всем здоровья и всех благ!
А подзапутался я просто в связи с тем, что изначально было у меня желание грохнуть всю php с его экстеншенами, а потом показалось в этой беседе, что какими-то манипуляциями можно это как-то более элегантно оживить, но нет.....
> А подзапутался я просто в связи с тем, что изначально было у
> меня желание грохнуть всю php с его экстеншенами, а потом показалось
> в этой беседе, что какими-то манипуляциями можно это как-то более элегантно
> оживить, но нет.....меньше пить надо ;)
> ** Listing the failed packages (-:ignored / *:skipped / !:failed)
> - databases/php56-mysql (port deleted)
> - devel/pecl-intl (port deleted)Порты удалены в связи с окончанием срока поддержки. Убивать через pkg delete и искать/ставить новые порты
> * databases/php72-pdo_mysql (php56-pdo_mysql-5.6.38)
Этот не обновился потому что не обновился php56-mysql - см. выше
>> 2) Перед апгрейдом PHP, необходим апгрейд mysql
> Извиняюсь за назойливость. Просто пока обновляется перл решил уточнить этот момент.
> У меня mariadb стоит и она в принципе обновилась при той попытке
> обновления и так:
> mariadb101-client-10.1.37_2 =
> mariadb101-server-10.1.37_2 =
> Или вы имеете ввиду, что ее нужно апргейдить на какуй-то другую версию?если Вы ничего в /etc/make.conf не добавляли, то portupgrade для Вас обновил
MariaDB (defaults в /usr/port/Mk/Uses/mysql.mk).
В принципе надо было перед обновлением посмотреть на вывод portversion -v, потом updating, потом серое вещество... rouncube можно было и не грохать а просто обновить с соответсвующими ключами ( portupgrade -rR)...