>>>> переходить на mysql? А она потянет 20-ю либу? Или что сделать?
>>> Dirty hack
>>> ln -s libmysqlclient.so.18 libmysqlclient.so.20
>> это не хак, это плохой совет.
> В общем, завтра рабочий день, т.ч. надо было что-то предпринимать, поэтому я
> решил хотя бы временно сделать эту ссылку, т.е. ln -s libmysqlclient.so
> libmysqlclient.so.20
> аутентификация пользователей пошла, почта завелась и письма бегает.
> Чтобы вы посоветовали сделать в данном случае дальше, если отказаться от ссылки? Обдумывать то что собираетесь сделать и что делаете.
>сервер postfix + dovecot + mariadb + всякая фигня по мелочи.
>Обновлялся тут софт на серваке через portupgrade
от третьего лица обновлялся, звучит как, сам по себе?
похоже так оно и было, само и без смысла.
Дано: OS FreeBSD 10.x или 11.x, установлено: ...
# pkg ...
Ну нужно же грамотно и понятно излагать, тогда на 50% Вы сами
поймете свою проблему.
Неужели прежде чем приступить к апгрейду, нельзя было сохранить
список установленного софта (не говоря о backup'ах):
# pkg info ...
ключи о зависимостях ...
посмотреть как были собраны порты:
# ls -la /var/db/ports
опции в /etc/make.conf
И уже потом выполнять апгрейд осознано.
Сервер MariaDB или MySQL - ставьте ради бога какой угодно, перед
установкой дамп всех баз.
перед любым обновлением из портов, как уже было сказано:
# less /usr/ports/UPDATING
там расписаны все ньюансы, смена default версий и что делать,
смена названий и версий пакетов и что делать.
На текущий момент, если собираете из портов:
20190701:
AFFECTS: users of databases/mysql56-(server|client)
AUTHOR: ale@FreeBSD.org
The default MySQL version has been updated from 5.6 to 5.7.
If you compile your own ports you may keep 5.6 as the default version by
adding the following lines to your /etc/make.conf file:
#
# Keep MySQL 5.6 as default version
#
DEFAULT_VERSIONS+=mysql=5.6
If you wish to update to the new default version, you need to first stop any
running server instance. Then, you will need to follow these steps, depending
on installed packages.
# pkg set -o databases/mysql56-client:databases/mysql57-client
# pkg set -o databases/mysql56-server:databases/mysql57-server
# pkg upgrade
но у Вас MariaDB, тогда для сборки из портов нужно было выставить default
в /etc/make.conf, к примеру для MariaDB 10.1
DEFAULT_VERSIONS= mysql=10.1m
тогда при сборке всех портов это учитывалось бы.
Если Вы этого не сделали, то при сборке свежих портов, там где
требовался mysql-client - будет использоваться клиент mysql57-client,
вместо клиента mariadb101-client.
Страшного тут ничего нет, ибо собирается applications с поддержкой
mysql.
Смысл, есть dovecot - он должен иметь поддержку для работы
с mysql или mariadb, для сборки нужны клиентские headers и библиотеки,
и по большому счету пофик какой версии, это API.
Соберем мы dovecot с mysql-client или mariadb-client, в какой то степени
не так уже важно, важно что это обеспечит интерфейс работы как с
MySQL сервером, так и с MariaDB сервером.
Если верхнее понятно, то ответ на Ваш вопрос прост.
Почему обновляются, чтобы держать систему в порядке, оградить
от проблем, ошибок, и тд и тп.
линк который Вы сделали, вернул работоспособность, но не дал
понимания и может сослужить в дальнейшем плохую службу.
К апгрейду как системы, так и третичного ПО, нужно подходить
поготовленным:
- апгрейд ОС
- апгрейд пакетов или портов или использование compatXY
Апгрейд портов: чтение /usr/ports/UPDATING
смена defaults для портов:
# less /usr/ports/Mk/bsd.default-versions.mk
# cat /etc/make.conf
В итоге у Вас dovecot и другие apps собрались с mysql57-client,
а база осталась, видимо mariadb101-server. Почему-то, это ввело
Вас панику и ступор, хотя на работоспособность, повлиять не
должно было.
Если бы Вы определили defaults в /etc/make.conf, возможно,
обновились бы и mariadb101-server и mariadb101-client.