RHEL 계열에서 MariaDB 패키지는 두 경로로 들어온다. 하나는 배포판이 제공하는 AppStream 모듈이고, 다른 하나는 MariaDB 재단이 제공하는 외부 yum 저장소다. 원하지 않는 버전이 설치되는 것을 막으려면 어느 쪽에서 오는지부터 확인한다.
dnf repoquery --qf '%{name}-%{version} %{reponame}' mariadb-server
dnf module list mariadb
저장소 파일에서 끄거나 명령으로 끈다.
dnf config-manager --set-disabled mariadb
dnf repolist all | grep -i mariadb
RHEL 7 계열이면 yum-config-manager --disable mariadb 를 쓰고, 없으면 yum-utils 를 먼저 설치한다. 저장소 파일을 직접 고칠 수도 있다.
[mariadb]
name = MariaDB
baseurl = https://yum.mariadb.org/...
gpgcheck = 1
enabled = 0
RHEL 8 이상에서 enabled=0 만으로는 부족한 경우가 있다. 배포판 AppStream 의 모듈 스트림이 켜져 있으면 그쪽 버전이 우선한다.
# 현재 활성 스트림 확인
dnf module list mariadb
# 모듈 자체를 끈다. 이후 이 모듈의 패키지는 후보에서 빠진다
dnf module disable mariadb -y
# 되돌리기
dnf module reset mariadb -y
disable 은 그 모듈의 모든 스트림을 후보에서 제외하므로, 외부 저장소의 패키지를 쓰려 할 때 필요한 단계다. reset 은 활성/비활성 상태를 지워 기본으로 되돌린다.
RHEL 10 과 최근 Fedora 는 모듈 방식을 걷어내는 중이므로 dnf module 명령이 없을 수 있다. 이때는 저장소 우선순위(priority)나 exclude= 로 제어한다.
[appstream]
exclude = mariadb mariadb-server mariadb-common
dnf clean all
dnf makecache
dnf list available mariadb-server