Вопрос или проблема
Мне пришлось установить MySQL Server community на нашем сервере (тимлид не хотел MariaDB из-за поддержки или чего-то еще). Поэтому я удалил MariaDB, что в свою очередь также удалило Postfix.
Теперь мне нужно установить Postfix, потому что нам нужно перенаправлять электронную почту. Если я выполню yum install postfix
, он также пытается установить mariadb-libs, что конфликтует с MySQL-Server. Как я могу установить Postfix без использования MariaDB? Или как я могу решить этот конфликт?
ОС: RHEL 7.1
Некоторые сообщения об ошибках конфликта:
Transaction check error:
file /usr/share/mysql/charsets/README from
install of mariadb-libs-1:5.5.41-2.el7_0.x86_64 conflicts with file
from package MySQL-server-5.5.42-1.el7.x86_64
file /usr/share/mysql/charsets/Index.xml from install of
mariadb-libs-1:5.5.41-2.el7_0.x86_64 conflicts with file from package
MySQL-server-5.5.42-1.el7.x86_64
file /usr/share/mysql/charsets/armscii8.xml from install of
mariadb-libs-1:5.5.41-2.el7_0.x86_64 conflicts with file from package
MySQL-server-5.5.42-1.el7.x86_64
file /usr/share/mysql/charsets/ascii.xml from install of
mariadb-libs-1:5.5.41-2.el7_0.x86_64 conflicts with file from package
MySQL-server-5.5.42-1.el7.x86_64
У меня была подобная проблема некоторое время назад. Я думаю, что решил её, сначала установив mysql-libs
, а затем Postfix. Я добавлю больше информации по мере её поступления.
Попробуйте установить, используя:
rpm -ivh MySQL-shared-[version].rpm
Затем вы можете попытаться удалить mariadb:
yum remove mariadb*
Я не знаю, как ведут себя пакеты RPM, предполагаю, что они не сильно отличаются от DPKG, но в Debian вы можете заменить приложение с определенными требованиями на другие, если установите другое приложение с такими же требованиями.
Примеры:
– MySQL & MariaDB
– Exim & Postfix
…
С уважением,
После установки пакета MySQL-shared удалось установить Postfix.
rpm -ivh MySQL-shared-[version].rpm
yum install postfix
Ответ или решение
Установка Postfix, по-видимому, вызывает конфликт с пакетом MySQL-server на вашей операционной системе RHEL 7.1, поскольку Postfix пытается установить библиотеку mariadb-libs, которая конфликтует с MySQL-server. Давайте подробно рассмотрим причины этой проблемы и способы её решения.
Теория:
Когда вы работаете с Linux, особенно с системой управления пакетами YUM
для дистрибутивов Red Hat, вы можете столкнуться с ситуацией, когда два пакета имеют перекрывающиеся зависимости или файлы. В вашем случае проблема связана с тем, что пакет postfix
, возможно, имеет зависимость от библиотеки mariadb-libs
, которая предоставляет определённые MySQL-совместимые библиотеки и файлы. Однако, поскольку на вашей системе установлен MySQL-server
, вы получаете конфликт файлов, так как MySQL и MariaDB часто используют схожие пути и файлы для установок.
Пример:
Из сообщения об ошибке видно, что такие файлы как /usr/share/mysql/charsets/README
и другие аналогичные файлы уже существуют в системе и принадлежат MySQL-server
. Когда mariadb-libs
пытается установить эти же файлы, возникает конфликт.
Применение:
-
Установка MySQL-shared:
Чтобы решить эту проблему, как уже упоминалось в вашем описании, сначала стоит установить пакетMySQL-shared
. Это пакет, содержащий те же библиотеки, что иmariadb-libs
, но ориентированные на сервер MySQL. Эти библиотеки заменят необходимость установкиmariadb-libs
при установке Postfix.rpm -ivh MySQL-shared-[version].rpm
-
Удаление MariaDB:
Если MariaDB полностью не удалена, вы можете сделать это следующим образом:yum remove mariadb*
Это гарантирует, что в системе не осталось конфликтующих пакетов от MariaDB.
-
Установка Postfix:
Далее, когда MySQL-libs заменены и MariaDB удалена, вы можете установить Postfix. Эта установка теперь должна пройти без попыток потянуть за собойmariadb-libs
.yum install postfix
-
Проверка зависимостей:
В случае, если проблема не будет устранена, можно вручную проверить зависимости и конфликты командой:yum deplist postfix
Это позволит вам увидеть все зависимости Postfix и удостовериться, что больше нет конфликтов с MySQL-server.
-
Обновление системы и репозиториев:
Убедитесь, что ваши репозитории обновлены. Старые зависимости в репозиториях могут содержать обратную совместимость или ошибки. Обновите командой:yum update
-
Кастомные репозитории:
Если стандартные репозитории продолжают вызывать конфликты, рассмотрите возможность использования кастомных репозиториев или источников, которые не зависят от MariaDB, но поддерживают MySQL и Postfix.
Этот подход позволяет решить проблему с конфликтом пакетов, одновременно сохраняя требуемый MySQL-server в рабочем состоянии без ущемления функциональности Postfix для обработки почтовых сообщений. Такой метод является значимым для организаций, где требуется конкретная поддержка или совместимость с производственными системами. Убедитесь, что все установленные пакеты и конфигурации протестированы в тестовой среде перед развёртыванием на боевых серверах.
Эти шаги должны помочь вам без конфликтов интегрировать Postfix на вашу платформу с MySQL-server. Если у вас возникнут дальнейшие вопросы, рассмотрите обращение к официальной документации для MySQL и Postfix или проконсультируйтесь с опытными специалистами в области Linux и системного администрирования.