강좌
클라우드/리눅스에 관한 강좌입니다.
리눅스 분류

RPM 제거(Erase, Uninstall)

작성자 정보

  • 관리자 작성
  • 작성일

컨텐츠 정보

본문

RPM 제거(Erase, Uninstall)

 

 

RPM 패키지를 제거하는 방법은 다음과 같다.

 

 

 

 

 

 

# rpm -e [package_name]

 

 

 

 

 

 

 

다음 예제는 앞서 설치한 xz-libs 패키지를 삭제 옵션(-e)을 줘서 삭제하고 다시 삭제된 패키지의 정보를 qi 옵션으로 확인한 것이다.

 

 

 

 

삭제된 xz-libs 패키지가 설치되지 않았다는 메시지가 나온다.

 

 

 

 

 

 

 

 

 

# rpm e xz-libs

# rpm -qi xz-libs

xz-libs 패키지가 설치되어 있지 않습니다

#

 

 

 

 

 

 

 

그러나 종종 위와 같은 명령으로는 RPM으로 설치된 프로그램들의 제거가 잘 이루어지지 않는 경우가 있다.

 

 

 

 

이것은 RPM의 기능에 프로그램간의 상호 의존 관계를 관리하여 주기 때문이다.

 

 

 

 

RPMRPM 프로그램 삭제 시 원칙적으로 그 프로그램과 상호 의존성을 지니고 있는 패키지를 확인한 뒤 문제가 없는 경우에 삭제가 가능하다.

 

 

 

 

 

 

 

 

 

 

[root@sulinux ~]# rpm -ivh xz-4.999.9-0.3.beta.20091007git.el5.x86_64.rpm

준비중.. ########################################### [100%]

1:xz ########################################### [100%]

# rpm -ivh xz-lzma-compat-4.999.9-0.3.beta.20091007git.el5.x86_64.rpm

준비중.. ########################################### [100%]

1:xz-lzma-compat ########################################### [100%]

# rpm -e xz

오류: Failed dependencies:

xz-4.999.9-0.3.beta.20091007git.el5 is needed by (installed) xz-lzma-compat-4.999.9-0.3.beta.20091007git.el5.x6_64

[root@sulinux ~]#

 

 

 

 

 

 

 

 

위의 예제는 xz 프로그램을 설치하고 이와 의존성을 가진 xz-lzma-compat 패키지를 설치한 후에 xz 프로그램을 rpm e 명령으로 삭제 시도를 하면서 의존성 문제로 프로그램 제거에 실패한 경우의 모습이다.

 

 

 

 

에러 메시지는 의존성 문제로 패키지가 삭제되지 않았음을 알리고 어떤 프로그램이 의존성을 가지는지 알려 주고 있다.

 

 

이러한 경우 관리를 위해 선택할 수 있는 방법은 2가지가 있다.

 

 

상호 의존성 관계를 지니고 있는 모든 RPM 패키지들을 삭제한 뒤 원하는 패키지를 삭제하는 방법

 

상호 의존성 관계를 무시하고 패키지를 삭제하는 방법

 

 

 

첫 번째 상호 의존성을 지니고 있는 모든 RPM을 삭제하는 경우 상호 의존성 에러를 유발하는 모든 패키지를 제거한 뒤 목적하는 패키지를 제거한다.

 

 

 

 

 

 

 

[root@sulinux ~]# rpm -e xz-lzma-compat

[root@sulinux ~]# rpm -e xz

[root@sulinux ~]# rpm qi xz

xz 패키지가 설치되어 있지 않습니다

[root@sulinux ~]# rpm -qi xz-lzma-compat

xz-lzma-compat 패키지가 설치되어 있지 않습니다

 

 

 

 

 

 

두 번째 경우는 상호 의존성을 무시한 채 목적하는 패키지만을 삭제한다.

 

 

 

 

이때 사용되는 옵션은 패키지의 상호 의존성 검사를 하지 않음을 의미하는 --nodeps 라는 옵션을 사용한다(경우에 따라서는 첫 번째 방법이 통하지 않는 때가 있다.

 

 

 

 

서로가 의존관계를 가지고 있기 때문이다.

 

 

 

 

이 경우 이 두 번째 방법을 사용하면 프로그램을 삭제할 수 있다).

 

 

 

 

 

[root@sulinux ~]# rpm -e --nodeps xz

[root@sulinux ~]# rpm -qi xz

zx 패키지가 설치되어 있지 않습니다.

 

 

 

 

 

 

 

위의 두 가지 방법 중 무엇을 선택하느냐는 사용자의 현명한 판단에 맡기는 수밖에 없다.

 

 

 

 

각각의 리눅스 운영체제에 설치된 패키지의 종류는 다양하며 상황에 따라 삭제한 패키지가 시스템에 상당한 영향을 미치는 경우도 있기 때문이다.

관련자료

댓글 0
등록된 댓글이 없습니다.

공지사항


뉴스광장


  • 현재 회원수 :  60,015 명
  • 현재 강좌수 :  35,688 개
  • 현재 접속자 :  174 명