Ubuntu 12.04 LTS, MariaDB 업데이트 관련
Mysql 서버가 Oracle 로 넘어간 이 후, 많은 셀프 호스팅 기반 블로거들이 Maria DB 또는 Percona DB 로 전환하고 있다. Maria DB, Percona DB 는 Mysql 대체용으로 설치가 쉽고(사실, 특별히 환경설정이나 별도의 튜닝을 해 줄 필요없이 단순히 Mysql 대신 설치하기만 하면 된다.) 사용 방법이 Mysql 과 100% 호환되므로 관리자 입장에서는 새로운 DB 서버 설치 때문에 머리를 쥐어 짤 이유가 없다.
필자 역시 5.5 버전부터 Maria DB 로 갈아 탓는데, 오늘 우분투의 Mysql 관련 보안 업데이트를 무심코 했다가 Maria DB 서버 자체가 제거되는 황당한 경험을 하게 되었다. 그래서 구글링을 통해 원인을 검색해 보니, 결론은 패키지 업데이트 채널간의 충돌이 이번 문제의 원인이 된 것이다.
여하튼, Ubuntu 12.04 LTS 상에서 Maria DB 5.5.30 버전을 사용하고 있다면, Ubuntu 12.04 보안 패치 채널의 Mysql 관련 업데이트(5.5.31)는 MariaDB 에서 공식적으로 5.5.31 버전을 배포할 때까지 잠시 보류하는것이 좋다. (물론, 해도 되지만 Maria DB 가 자동 제거될 수 있고, 재설치하려면 조금 애를 먹을 것이다…)
오늘(2013년 4월 25일)자로 Ubuntu 12.04 공식 업데이트 채널을 통해 배포되는 mysql 5.5.31 관련 패키지 (아래 패키지를 무심코 업데이트하면, Maria DB 서버도 함께 제거될 수 있다.)
1 2 |
libmysqlclient18 Virtual package to satisfy external depends New version 5.5.31-0ubuntu0.12.04.1 Precise-security mysql-common MariaDB database common files (e.g. /etc/mysql/my.cnf) New version 5.5.31-0ubuntu0.12.04.1 Precise-security |
1 2 3 4 5 6 7 8 9 10 11 12 13 14 |
root@cool:~# apt-get install mariadb-server-5.5 Reading package lists... Done Building dependency tree Reading state information... Done Some packages could not be installed. This may mean that you have requested an impossible situation or if you are using the unstable distribution that some required packages have not yet been created or been moved out of Incoming. The following information may help to resolve the situation: The following packages have unmet dependencies: mariadb-server-5.5 : Depends: mariadb-client-5.5 (>= 5.5.30-mariadb1~precise) but it is not going to be installed Depends: mariadb-server-core-5.5 (>= 5.5.30-mariadb1~precise) but it is not going to be installed E: Unable to correct problems, you have held broken packages. |
Ubuntu 공식 채널의 libmysqlclient18 과 mysql-common 를 업데이트 한 후, MariaDB 를 재설치하려고 하면, 위와 같은 에러가 발생한다.
만약, 필자와 마찬가지로 무심코 업데이트를 해서 Maria DB 서버가 제거되었다면, 다음 방법을 이용하여 재설치 할 수 있다.
1. 일단, 기존에 설치된 모든 MariaDB 관련 패키지를 모두 삭제한다.
1 |
apt-get purge maria* |
2. 아래 명령을 한꺼번에 copy/paste 한 후, 리턴키.
1 2 3 4 5 |
apt-get install mariadb-server-5.5 mariadb-client-5.5 \ mariadb-server-core-5.5 mariadb-common mariadb-server \ libmariadbclient18 libdbd-mysql-perl mariadb-client-core-5.5 \ libmysqlclient18=5.5.30-mariadb1~precise \ mysql-common=5.5.30-mariadb1~precise |
위와 같이 하면, 일단 MariaDB 관련 패키지를 모두 제거한 후 재설치 할 수 있으며, 데이터베이스 자체는 전혀 손상되지 않으므로 혹시 DB 를 날려 먹을까봐 걱정하고 있다면 안심해도 된다. 참고로, 위 명령의 하단 2줄은 libmysqlclient18 과 mysql-common 패키지를 MariaDB 업데이트 채널에서 다운로드 하도록 설정해 주는 명령이다. 만약 이를 설정해 주지 않으면, apt-get 이 Ubuntu 공식 업데이트 채널의 최신 버전인 5.5.31 버전을 다운로드하려 하기 때문에 5.5.30 버전의 MariaDB 패키지와 충돌하게 된다.
최근에 새로 서버를 설치하면서 같은 문제 때문에 설치가 되지 않았는 데, 덕분에 잘 해결 했습니다.
5.5.33a 같은 경우는 5.5.30-mariadb1~precise 이 부분을
5.5.33a+maria-1~precise 로 처리하니 되더군요.