Ошибка Postfix при загрузке общих библиотек: libmysqlclient.so.18

Вопрос или проблема

Когда я пытаюсь запустить 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.

Причины проблемы:

  1. Зависимости Postfix: Версия Postfix, которую вы установили, вероятно, требует совместимости с libmysqlclient.so.18, что является частью библиотеки MySQL, но вы установили более новую версию (21). Postfix может быть собран с зависимостями, которые ссылаются на более старую версию библиотеки.

  2. Отсутствие необходимой библиотеки: У вас установлена версия MySQL, но библиотеки совместимости с предыдущими версиями, которые содержат libmysqlclient.so.18, отсутствуют.

Решение:

Ваше решение по переустановке Postfix оказалось верным. Вот более подробные шаги, которые помогут избежать подобных проблем в будущем:

  1. Удаление Postfix:

    sudo yum remove postfix
  2. Очистка кеша:

    sudo yum clean all
  3. Установка Postfix с нужными зависимостями:

    sudo yum install postfix
  4. Установка библиотеки совместимости:
    Возможно, потребуется установить или переустановить пакет mysql-community-libs-compat, который включает необходимые версии библиотек:

    sudo yum install mysql-community-libs-compat
  5. Запуск и включение Postfix:

    sudo systemctl start postfix
    sudo systemctl enable postfix
  6. Проверка статуса Postfix:
    Убедитесь, что Postfix запущен без ошибок:

    sudo systemctl status postfix
  7. Тестирование отправки письма:
    Проверьте, работает ли почта, отправив тестовое сообщение:

    echo "Subject: My Test Email #1" | /usr/sbin/sendmail [email protected]

Заключение:

Ваша проблема была решена установкой необходимых библиотек и обновлением Postfix. Будьте внимательны при обновлении или установке программного обеспечения, которое может зависеть от конкретных версий библиотек. Всегда проверяйте зависимости и совместимость программного обеспечения с установленными библиотеками, чтобы избежать подобных ошибок в будущем. Если у вас возникнут новые проблемы, не стесняйтесь обращаться за помощью.

Оцените материал
Добавить комментарий

Капча загружается...