Это происходит потому, что пакеты mysql-community настроены на устаревшие пакеты mariadb.
Приведенный ниже подход может быть не самым оптимальным, каждый может легко его упростить.
Прежде всего, если у вас установлено mysql-community-*
пакетов, возможно, у вас MySQL Community
Репо настроено. Найдите ваш /etc/yum.repo.d
и удалите его оттуда:
$ grep -ri community /etc/yum.repos.d/*
/etc/yum.repos.d/mysql.repo:[mysql80-community]
/etc/yum.repos.d/mysql.repo:name=MySQL 8.0 Community Server
/etc/yum.repos.d/mysql.repo:baseurl=http://repo.mysql.com/yum/mysql-8.0-community/fc/$releasever/$basearch/
sudo mv /etc/yum.repos.d/mysql.repo /tmp/
Затем проверьте, какие именно mysql-community-*
пакеты у вас есть:
$ rpm -qa | grep mysql-community
mysql-community-server-8.0.17-1.fc30.x86_64
mysql-community-libs-8.0.17-1.fc30.x86_64
mysql-community-client-8.0.17-1.fc30.x86_64
mysql-community-common-8.0.17-1.fc30.x86_64
Самый простой способ избавиться отони просто удаляют их на dnf
. Но это нужно сделать очень осторожно , потому что, если они были там какое-то время, у вас, вероятно, есть другие пакеты в зависимости от них. Поэтому, когда вы запускаете команду remove
, убедитесь, что у вас нет автоматического выбора опции (-y
), и проверьте вывод, прежде чем согласиться на удаление. Это может выглядеть примерно так:
$ sudo dnf remove mysql-community*
Dependencies resolved.
===================================================================================================================================================================================
Package Architecture Version Repository Size
===================================================================================================================================================================================
Removing:
mysql-community-client x86_64 8.0.17-1.fc30 @mysql80-community 66 M
mysql-community-common x86_64 8.0.17-1.fc30 @mysql80-community 8.3 M
mysql-community-libs x86_64 8.0.17-1.fc30 @mysql80-community 7.5 M
mysql-community-server x86_64 8.0.17-1.fc30 @mysql80-community 128 M
Removing dependent packages:
perl-DBD-MySQL x86_64 4.050-2.fc30 @fedora 367 k
Removing unused dependencies:
Обратите внимание на раздел Removing dependent packages
. В качестве примера я добавил только один пакет, но в вашем случае он может быть намного длиннее и страшнее. Если у вас есть раздел и вы не знаете, можете ли вы безопасно удалить все его содержимое, может быть, лучше этого не делать (только пока). Прервите операцию.
Is this ok [y/N]: n
Operation aborted.
Вместо этого вы можете попробовать заменить пакетов mysql-community на MariaDB. Существует опция dnf
--allowerasing
, которая, кажется, делает свое дело, но вам нужно указать имена пакетов с версиями, чтобы обойти устаревание mysql (замените версию в команде реальной версией, доступной к тому времени, когда вы это делаете):
$ sudo dnf install --allowerasing --setopt=install_weak_deps=False mariadb-server-10.3.17 mariadb-10.3.17
Last metadata expiration check: 0:07:18 ago on Mon 07 Oct 2019 02:25:32 PM UTC.
Dependencies resolved.
===================================================================================================================================================================================
Package Architecture Version Repository Size
===================================================================================================================================================================================
Installing:
mariadb x86_64 3:10.3.17-1.fc30 updates 5.9 M
mariadb-server x86_64 3:10.3.17-1.fc30 updates 17 M
Installing dependencies:
mariadb-common x86_64 3:10.3.17-1.fc30 updates 36 k
mariadb-connector-c-config noarch 3.1.3-1.fc30 updates 12 k
mariadb-errmsg x86_64 3:10.3.17-1.fc30 updates 205 k
mysql-selinux noarch 1.0.0-8.fc30 fedora 35 k
psmisc x86_64 23.1-5.1.fc30 fedora 133 k
Removing dependent packages:
mysql-community-client x86_64 8.0.17-1.fc30 @mysql80-community 66 M
mysql-community-server x86_64 8.0.17-1.fc30 @mysql80-community 128 M
Transaction Summary
Теперь ничего не удаляется как зависимости, кроме mysql-сообщества, которое было целью.
Опция --setopt=install_weak_deps=False
не является строго необходимой, но без нееdnf
устанавливает много пакетов, которые вам, вероятно, не нужны. Вы можете запустить без опции, чтобы увидеть разницу.
После замены пакетов сервера и клиента вы можете проверить, что еще осталось от сервера сообщества MySQL, и попытаться удалить оставшиеся пакеты, еслиВы хотите:
$ rpm -qa | grep mysql-community
mysql-community-libs-8.0.17-1.fc30.x86_64
mysql-community-common-8.0.17-1.fc30.x86_64
$ sudo dnf remove mysql-community-libs mysql-community-common
Dependencies resolved.
===================================================================================================================================================================================
Package Architecture Version Repository Size
===================================================================================================================================================================================
Removing:
mysql-community-common x86_64 8.0.17-1.fc30 @mysql80-community 8.3 M
mysql-community-libs x86_64 8.0.17-1.fc30 @mysql80-community 7.5 M
Transaction Summary
Теперь это кажется безопасным, никаких зависимостей больше.
Есть одна загвоздка, о которой я могу думать. Если вы не знаете, почему изначально было установлено mysql-сообщество , возможно, у вас есть что-то, что требует именно этого, и вы не будете удовлетворены заменой MariaDB. Тогда это, вероятно, не позволит вам заменить пакеты. Но я не могу догадаться, что бы это могло быть, так что это зависит от вас, чтобы попытаться увидеть. Я полагаю, он будет отображаться в выводе dnf
, который вы проверяете перед подтверждением.