2012년 2월 28일 화요일

mysql rpm 삭제 방법 specifies multiple packages

요즘 리눅스는  x86형태만 있는 것이 아니고 x86_64 등 다양한 리눅스가 버젼별로 존재합니다.
저 x86_64라는 놈이 좀 이상해서 32비트 패키지와 64비트 패키지를 모두 가지고 있습니다.
이때문에 

# rpm -e mysql 

이렇게 하면

error: "mysql-4.1.12-3.RHEL4.1" specifies multiple packages

위와 같은 오류를 뱉어 냅니다. 이때 활용하는 방법입니다.
구글신에서 열심히 뒤졌습니다. 1년전에 분명이 사용한 방법인데 
기억이 안나서 ㅎㅎㅎ

/etc/rpm/macros.local

위 파일을 만들어 줍니다. 내용은 다음과 같습니다.

%_query_all_fmt %%{name}-%%{version}-%%{release}.%%{arch}


그렇게 해놓고 

rpm -qa | grep mysql 

이렇게 해보시면

libdbi-dbd-mysql-0.6.5-10.RHEL4.1.x86_64
mysqlclient10-3.23.58-4.RHEL4.1.i386
mysql-4.1.12-3.RHEL4.1.i386
mysqlclient10-3.23.58-4.RHEL4.1.x86_64
mysql-4.1.12-3.RHEL4.1.x86_64

위와 같이 명확한 버젼이 나타납니다. 풀 패키지명을 다 써주시면 제거가 됩니다.
또다른 한가지는 

--allmatches                     remove all packages which match <package>
                                     (normally an error is generated if
                                      <package> specified multiple packages)

위의 옵션을 사용하는것입니다.
저는 위의 옵션 보다는 앞서 말한 파일 변경법을 선호 하고 권장합니다.
왜냐면 명확하게 제거 할 수 있기 대문입니다.
그래서 실제로 mysql 패키지를 지울때는


rpm -e --nodeps mysql-4.1.12-3.RHEL4.1.i386

저렇게 지우시면 됩니다.