Вопрос или проблема
Когда я пытаюсь запустить postfix, я получаю следующие ошибки:
/usr/sbin/postconf: ошибка при загрузке общих библиотек: libmysqlclient.so.18: не удается открыть файл общего объекта: Нет такого...r каталога
/usr/bin/newaliases: ошибка при загрузке общих библиотек: libmysqlclient.so.18: не удается открыть файл общего объекта: НетSuc...r каталога
/usr/sbin/postfix: ошибка при загрузке общих библиотек: libmysqlclient.so.18: не удается открыть файл общего объекта: НетSuc...r каталога
Postfix работал нормально, пока я не установил mysql. Я не понимаю, почему mysql вообще связан с ошибками Postfix.
Когда я выполняю команду find . -name 'libmysqlclient*'
, я получаю следующее:
./usr/lib64/mysql/libmysqlclient.so.21
./usr/lib64/mysql/libmysqlclient.so.21.2.30
# ls -al /usr/lib64/mysql
всего 7520
drwxr-xr-x. 5 root root 109 Сен 29 13:47 .
dr-xr-xr-x. 49 root root 28672 Сен 29 13:49 ..
lrwxrwxrwx. 1 root root 25 Сен 28 21:53 libmysqlclient.so.21 -> libmysqlclient.so.21.2.30
-rwxr-xr-x. 1 root root 7651120 Июл 6 17:53 libmysqlclient.so.21.2.30
drwxr-xr-x. 4 root root 28 Сен 28 21:53 mecab
drwxr-xr-x. 2 root root 4096 Сен 28 21:53 plugin
drwxr-xr-x. 3 root root 131 Сен 28 21:53 private
Версия 18 не установлена, и я в замешательстве, почему он ищет версию 18 вместо 21.
Дополнительная информация, которая может быть полезной:
mysql-community-server-8.0.30-1.el7.x86_64
#which mysql: /bin/mysql/mysql
#mysql -V: Вер 8.0.30 для Linux на x86_64 (MySQL Community Server - GPL)
#mysqld -V: /usr/sbin/mysqld Вер 8.0.30 для Linux на x86_64 (MySQL Community Server - GPL)
#php -v PHP 8.0.20 (cli)
#systemctl status mysqld: Активно: активен (работает) с Пт 2022-09-30 23:27:02 CDT; 3 дня назад
# rpm -qa postfix: postfix-2.10.1-6.amzn2.0.3.x86_64
Сервер AWS Linux 2
Может кто-то помочь мне с этим? Я проверял другие посты здесь, которые похожи на мою проблему, однако я недостаточно близко нашел решение, чтобы его попробовать.
Наконец, я также выполнил эту команду, которая выводит множество информации, именно поэтому я сохранил это для конца поста:
# repoquery --whatprovides *libmysqlclient*
mysql-community-libs-0:8.0.18-1.el7.i686
mysql-community-libs-0:8.0.11-1.el7.i686
mysql-community-devel-0:8.0.11-1.el7.i686
mysql-community-libs-0:8.0.27-1.el7.i686
mysql-community-libs-compat-0:8.0.15-1.el7.i686
mysql-community-libs-0:8.0.27-1.el7.x86_64
mysql-community-devel-0:8.0.17-1.el7.i686
mysql-workbench-community-0:6.3.5-1.el7.x86_64
mysql-community-libs-0:8.0.30-1.el7.i686
mysql-community-devel-0:8.0.15-1.el7.x86_64
mysql-community-libs-compat-0:8.0.24-1.el7.i686
mysql-community-libs-compat-0:8.0.26-1.el7.i686
mysql-workbench-community-0:8.0.16-1.el7.x86_64
mysql-community-libs-0:8.0.26-1.el7.i686
mysql-community-libs-0:8.0.17-1.el7.i686
mysql-workbench-community-0:8.0.12-1.el7.x86_64
mysql-community-devel-0:8.0.21-1.el7.i686
mysql-community-libs-compat-0:8.0.13-1.el7.i686
mysql-community-libs-compat-0:8.0.16-2.el7.i686
mariadb-devel-1:5.5.60-1.amzn2.x86_64
mysql-community-devel-0:8.0.16-1.el7.i686
mysql-community-devel-0:8.0.19-1.el7.x86_64
mysql-community-devel-0:8.0.18-1.el7.x86_64
mysql-community-libs-0:8.0.16-1.el7.i686
mysql-community-libs-compat-0:8.0.22-1.el7.i686
mariadb-devel-1:5.5.56-2.amzn2.0.2.x86_64
mysql-community-libs-0:8.0.16-1.el7.x86_64
mysql-community-devel-0:8.0.26-1.el7.i686
mysql-community-libs-0:8.0.22-1.el7.x86_64
mysql-community-libs-0:8.0.28-1.el7.x86_64
mysql-community-libs-0:8.0.23-1.el7.x86_64
mysql-community-devel-0:8.0.30-1.el7.i686
mysql-community-devel-0:8.0.26-1.el7.x86_64
mysql-community-libs-compat-0:8.0.19-1.el7.i686
mysql-community-devel-0:8.0.11-1.el7.x86_64
mysql-community-libs-0:8.0.13-1.el7.i686
mysql-community-libs-compat-0:8.0.12-1.el7.i686
mariadb-devel-1:5.5.62-1.amzn2.0.1.x86_64
mysql-workbench-community-0:8.0.22-1.el7.x86_64
mysql-community-devel-0:8.0.15-1.el7.i686
mysql-community-devel-0:8.0.12-1.el7.i686
mysql-community-devel-0:8.0.12-1.el7.i686
mysql-workbench-community-0:6.2.4-1.el7.x86_64
mysql-community-devel-0:8.0.23-1.el7.i686
mariadb-libs-1:5.5.62-1.amzn2.x86_64
mysql-community-devel-0:8.0.16-1.el7.i686
mysql-community-libs-compat-0:8.0.25-1.el7.x86_64
mysql-community-devel-0:8.0.21-1.el7.i686
mysql-community-libs-0:8.0.21-1.el7.x86_64
mysql-workbench-community-0:8.0.13-1.el7.x86_64
mysql-community-libs-compat-0:8.0.14-1.el7.x86_64
mysql-community-libs-compat-0:8.0.27-1.el7.x86_64
mysql-community-libs-compat-0:8.0.30-1.el7.i686
mysql-community-libs-compat-0:8.0.23-1.el7.i686
mysql-community-devel-0:8.0.14-1.el7.x86_64
mariadb-devel-1:5.5.56-2.amzn2.x86_64
mysql-community-libs-0:8.0.17-1.el7.x86_64
mysql-community-devel-0:8.0.22-1.el7.i686
mysql-community-libs-0:8.0.20-1.el7.i686
mariadb-libs-1:5.5.68-1.amzn2.i686
mysql-community-libs-0:8.0.25-1.el7.i686
mariadb-libs-1:5.5.56-2.amzn2.x86_64
mysql-community-libs-0:8.0.16-1.el7.i686
mysql-community-libs-compat-0:8.0.14-1.el7.i686
mariadb-libs-1:5.5.68-1.amzn2.x86_64
mysql-community-libs-compat-0:8.0.19-1.el7.x86_64
mysql-community-libs-0:8.0.12-1.el7.i686
mysql-workbench-community-0:6.3.6-1.el7.x86_64
mysql-workbench-community-0:6.3.7-1.el7.x86_64
mysql-community-libs-0:8.0.11-1.el7.x86_64
mysql-community-libs-compat-0:8.0.25-1.el7.i686
mysql-community-libs-0:8.0.20-1.el7.x86_64
mariadb-libs-1:5.5.60-1.amzn2.i686
mysql-community-libs-0:8.0.25-1.el7.x86_64
mysql-community-libs-0:8.0.19-1.el7.x86_64
mysql-community-libs-0:8.0.28-1.el7.i686
mysql-community-libs-0:8.0.30-1.el7.x86_64
mysql-community-libs-0:8.0.14-1.el7.x86_64
mysql-community-libs-0:8.0.24-1.el7.i686
mysql-community-devel-0:8.0.22-1.el7.x86_64
mysql-community-devel-0:8.0.20-1.el7.x86_64
mysql-community-devel-0:8.0.21-1.el7.x86_64
Обновление с исправлением:
Я наконец решил попробовать удалить postfix и переустановить его после многих часов попыток разобраться с этой конкретной проблемой. Хорошая новость в том, что это сработало и помогло найти отсутствующий пакет.
Вот команды, которые я выполнил:
#yum remove postifix
#yum clean all
#yum install postfix
А теперь вот вывод установки:
# yum install postfix
Загруженные плагины: extras_suggestions, langpacks, priorities, update-motd
amzn2-core | 3.7 kB 00:00:00
amzn2extra-docker | 3.0 kB 00:00:00
amzn2extra-epel | 3.0 kB 00:00:00
amzn2extra-kernel-5.10 | 3.0 kB 00:00:00
amzn2extra-nginx1 | 3.0 kB 00:00:00
amzn2extra-php8.0 | 3.0 kB 00:00:00
epel/x86_64/metalink | 22 kB 00:00:00
epel | 4.7 kB 00:00:00
mysql-connectors-community | 2.6 kB 00:00:00
mysql-tools-community | 2.6 kB 00:00:00
mysql80-community | 2.6 kB 00:00:00
(1/19): amzn2-core/2/x86_64/group_gz | 2.5 kB 00:00:00
(2/19): amzn2-core/2/x86_64/updateinfo | 498 kB 00:00:00
(3/19): amzn2extra-epel/2/x86_64/primary_db | 1.8 kB 00:00:00
(4/19): amzn2extra-kernel-5.10/2/x86_64/updateinfo | 18 kB 00:00:00
(5/19): amzn2extra-docker/2/x86_64/updateinfo | 6.4 kB 00:00:00
(6/19): amzn2extra-epel/2/x86_64/updateinfo | 76 B 00:00:00
(7/19): amzn2extra-nginx1/2/x86_64/updateinfo | 76 B 00:00:00
(8/19): amzn2extra-docker/2/x86_64/primary_db | 93 kB 00:00:00
(9/19): amzn2extra-nginx1/2/x86_64/primary_db | 48 kB 00:00:00
(10/19): amzn2extra-php8.0/2/x86_64/updateinfo | 76 B 00:00:00
(11/19): amzn2extra-php8.0/2/x86_64/primary_db | 181 kB 00:00:00
(12/19): epel/x86_64/group_gz | 97 kB 00:00:00
(13/19): epel/x86_64/updateinfo | 1.1 MB 00:00:00
(14/19): amzn2extra-kernel-5.10/2/x86_64/primary_db | 11 MB 00:00:00
(15/19): epel/x86_64/primary_db | 7.0 MB 00:00:00
(16/19): mysql-connectors-community/x86_64/primary_db | 90 kB 00:00:00
(17/19): mysql-tools-community/x86_64/primary_db | 87 kB 00:00:00
(18/19): mysql80-community/x86_64/primary_db | 211 kB 00:00:00
(19/19): amzn2-core/2/x86_64/primary_db | 65 MB 00:00:01
293 пакетов исключены из-за защиты приоритета репозитория
Разрешение зависимостей
--> Запуск проверки транзакции
---> Пакет postfix.x86_64 2:2.10.1-6.amzn2.0.3 будет установлен
--> Обработка зависимости: libmysqlclient.so.18(libmysqlclient_18)(64bit) для пакета: 2:postfix-2.10.1-6.amzn2.0.3.x86_64
--> Обработка зависимости: libmysqlclient.so.18()(64bit) для пакета: 2:postfix-2.10.1-6.amzn2.0.3.x86_64
--> Запуск проверки транзакции
---> Пакет mysql-community-libs-compat.x86_64 0:8.0.30-1.el7 будет установлен
--> Завершено разрешение зависимостей
Зависимости разрешены
======================================================================================================================================================================================================
Пакет Архитектура Версия Репозиторий Размер
======================================================================================================================================================================================================
Установка:
postfix x86_64 2:2.10.1-6.amzn2.0.3 amzn2-core 2.4 M
Установка для зависимостей:
mysql-community-libs-compat x86_64 8.0.30-1.el7 mysql80-community 670 k
Итог транзакции
======================================================================================================================================================================================================
Установить 1 Пакет (+1 Зависимый пакет)
Как вы видите, отсутствующий пакет в моем случае был mysql-community-libs-compat-8.0.30-1.el7.x86_64
.
И теперь я получаю следующее:
# ls -al /usr/lib64/mysql
всего 10984
drwxr-xr-x. 5 root root 233 Окт 4 12:41 .
dr-xr-xr-x. 49 root root 28672 Сен 29 13:49 ..
lrwxrwxrwx. 1 root root 20 Окт 4 12:41 libmysqlclient_r.so.18 -> libmysqlclient.so.18
lrwxrwxrwx. 1 root root 24 Окт 4 12:41 libmysqlclient_r.so.18.1.0 -> libmysqlclient.so.18.1.0
lrwxrwxrwx. 1 root root 24 Окт 4 12:41 libmysqlclient.so.18 -> libmysqlclient.so.18.1.0
-rwxr-xr-x. 1 root root 3546456 Июл 6 17:53 libmysqlclient.so.18.1.0
lrwxrwxrwx. 1 root root 25 Сен 28 21:53 libmysqlclient.so.21 -> libmysqlclient.so.21.2.30
-rwxr-xr-x. 1 root root 7651120 Июл 6 17:53 libmysqlclient.so.21.2.30
drwxr-xr-x. 4 root root 28 Сен 28 21:53 mecab
drwxr-xr-x. 2 root root 4096 Сен 28 21:53 plugin
drwxr-xr-x. 3 root root 131 Сен 28 21:53 private
Наконец, я выполнил следующее:
//Запустить Postfix
#systemctl start postfix
//Включить службу, чтобы она запускалась автоматически после перезагрузки
#systemctl enable postfix
//Проверить, чтобы убедиться, что она работает без ошибок
#systemctl status postfix
//Ключевая часть вывода, которую я искал
Активно: активно (работает)
Наконец, протестируйте, чтобы убедиться, что все работает. Это, конечно, после настройки Postfix под мои нужды!
echo "Тема: Мое тестовое письмо #1" | /usr/sbin/sendmail [email protected]
Письмо получено! 🙂
Надеюсь, это поможет другим в аналогичной ситуации!
Ответ или решение
Ошибка при запуске Postfix, связанная с отсутствующими библиотеками, может возникать по нескольким причинам, особенно после установки или обновления MySQL. В вашем случае ошибка говорит о том, что системе не удается найти библиотеку libmysqlclient.so.18
, несмотря на наличие более новой версии libmysqlclient.so.21
.
Причины проблемы:
-
Зависимости Postfix: Версия Postfix, которую вы установили, вероятно, требует совместимости с
libmysqlclient.so.18
, что является частью библиотеки MySQL, но вы установили более новую версию (21). Postfix может быть собран с зависимостями, которые ссылаются на более старую версию библиотеки. -
Отсутствие необходимой библиотеки: У вас установлена версия MySQL, но библиотеки совместимости с предыдущими версиями, которые содержат
libmysqlclient.so.18
, отсутствуют.
Решение:
Ваше решение по переустановке Postfix оказалось верным. Вот более подробные шаги, которые помогут избежать подобных проблем в будущем:
-
Удаление Postfix:
sudo yum remove postfix
-
Очистка кеша:
sudo yum clean all
-
Установка Postfix с нужными зависимостями:
sudo yum install postfix
-
Установка библиотеки совместимости:
Возможно, потребуется установить или переустановить пакетmysql-community-libs-compat
, который включает необходимые версии библиотек:sudo yum install mysql-community-libs-compat
-
Запуск и включение Postfix:
sudo systemctl start postfix sudo systemctl enable postfix
-
Проверка статуса Postfix:
Убедитесь, что Postfix запущен без ошибок:sudo systemctl status postfix
-
Тестирование отправки письма:
Проверьте, работает ли почта, отправив тестовое сообщение:echo "Subject: My Test Email #1" | /usr/sbin/sendmail [email protected]
Заключение:
Ваша проблема была решена установкой необходимых библиотек и обновлением Postfix. Будьте внимательны при обновлении или установке программного обеспечения, которое может зависеть от конкретных версий библиотек. Всегда проверяйте зависимости и совместимость программного обеспечения с установленными библиотеками, чтобы избежать подобных ошибок в будущем. Если у вас возникнут новые проблемы, не стесняйтесь обращаться за помощью.