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

rpm실무18편: RPM패키지 삭제하기와 삭제시 문제해결 방법1

작성자 정보

  • 관리자 작성
  • 작성일

컨텐츠 정보

본문

rpm실무18: RPM패키지 삭제하기와 삭제시 문제해결 방법1

 

 

 

 

 

패키지를 삭제하는 가장 간단한 방법은 rpm명령어에 -e옵션을 사용하면 된다.

 

 

 

 

 그럼 여기서 quota관련 패키지를 삭제해 보도록하겠다.

 

 

 

 

 특정 패키지를 삭제하기 위해서는 설치되어있는 패키지의 이름을 정확하게 알아야한다.

 

 

 

 

  따라서 아래의 예에서는 설치되어있는 bind패키지가 어떤 패키지인가를 확인하기 위하여 “rpm -qa | grep bind-9.5.1”를 실행하였다.

 

 

 

 

 그 결과 bind-9.5.1-0.8.b2.fc10.i386라는 패키지가 이미 설치되어있음을 확인하였다.

 

 

 

 

 

 

[root@sulinux Packages]# rpm -qa | grep bind-9.5.1

bind-9.5.1-0.8.b2.fc10.i386

[root@sulinux Packages]#

 

 

 

 

이제 이 패키지를 삭제하기 위하여 “rpm -e bind-9.5.1-0.8.b2.fc10”명령어를 실행하였다.

 

 

 

 

 아래의 결과와 같이 아무런 메시지 없이 종료되면 패키지 삭제가 정상적으로 완료되었음을 의미한다.

 

 

 

 

 

 

[root@sulinux Packages]# rpm -e bind-9.5.1-0.8.b2.fc10

[root@sulinux Packages]#

[root@sulinux Packages]# rpm -qa | grep bind-9.5.1

[root@sulinux Packages]#

 

 

 

 

그런 다음 삭제했던 bind패키지를 rpm명령어로 확인한 것이다.

 

 

 

 

 위의 예는 가장 일반적인 RPM패키지 삭제의 예이다.

 

 

 

 

 

 

패키지를 삭제할 때에도 에러가 발생할 수 있다.

 

 

 

 

  이 경우에 가장 흔하게 발생하는 에러가 패키지 의존성 에러로 인한 패키지 삭제 실패이다.

 

 

 

 

  특정 패키지를 삭제할 때에 의존성문제로 인하여 패키지가 삭제되지 않을 경우에는 다음과 같이 두가지의 해결 방법이 있다.

 

 

 

 

 

 

첫번째는 의존성문제를 해결한 후에 삭제하는 방법이다.

 

 

 

 

  즉 의존성관계에 있는 패키지를 모두 삭제해 준 후에 삭제하고자하는 원래의 패키지를 삭제하는 것이다.

 

 

 

 

 

 

두번째는 의존성문제를 무시하고 지정된 패키지만 삭제하는 방법이다.

 

 

 

 

 이 방법은 --nodeps라는 옵션으로 간단히 해결할 수 있으며 바로 뒤의 예에서 설명하고있다.

 

 

 

 

 

 

패키지 의존성문제로 인하여 삭제되지 않을 경우의 예를 보도록하겠다.

 

 

 

 

 

 

아래에서는 -e 옵션을 사용하여 sendmail-8.14.3-1.fc10패키지를 삭제하려고 하였다.

 

 

 

 

 하지만 “error: Failed dependencies”라는 메시지와 함께 sendmail-cf-8.14.3-1.fc10.i386패키지, 그리고 cronie-1.2-4.fc10.i386패키지, 그리고 redhat-lsb-3.2-2.fc10.i386패키지등과 의존성 상관관계에 있기 때문에 정상적으로 삭제처리되지 않았다.

 

 

 

 

 

 

[root@sulinux Packages]# rpm -e sendmail-8.14.3-1.fc10

error: Failed dependencies:

        /usr/sbin/sendmail is needed by (installed) cronie-1.2-4.fc10.i386

        /usr/sbin/sendmail is needed by (installed) redhat-lsb-3.2-2.fc10.i386

        sendmail = 8.14.3-1.fc10 is needed by (installed) sendmail-cf-8.14.3-1.fc10.i386

[root@sulinux Packages]#

 

 

 

 

 

이런 경우에 문제있는 이들 패키지들을 먼저 삭제한 후에 다시 sendmail-8.14.3-1.fc10패키지를 삭제하면된다.

 

 

 

 

  즉 아래의 예에서는 의존성 관계에 있는 cronie-1.2-4.fc10.i386패키지와 sendmail-cf-8.14.3-1.fc10.i386패키지를 먼저 삭제한 후에 sendmail-8.14.3-1.fc10패키지를 삭제한 예이다.

 

 

 

 

 

 

[root@sulinux Packages]# rpm -e cronie-1.2-4.fc10.i386

[root@sulinux Packages]#

[root@sulinux Packages]# rpm -e redhat-lsb-3.2-2.fc10.i386

[root@sulinux Packages]#

[root@sulinux Packages]# rpm -e sendmail-cf-8.14.3-1.fc10.i386

[root@sulinux Packages]#

[root@sulinux Packages]# rpm -e sendmail-8.14.3-1.fc10

[root@sulinux Packages]#

 

 

 

 

이번에 설명한 내용은 의존성 문제로 인하여 삭제되지 않은 특정 패키지를 의존성관계에 있는 패키지들을 모두 삭제한 후에 원래 삭제하려고 했던 패키지를 마지막에 삭제하는 방법으로 RPM삭제시의 의존성문제를 해결한 예이다.

 

 

 

 

 

 

하지만 이런 방법은 좋은 방법은 되지 못한다.

 

 

 

 

  확실하게 불필요하다는 것을 확인하지 않은 상태에서 의존성 관계에 있는 모든 패키지를 삭제한다는 것은 자칫 시스템 장애의 원인이 될 수있다.

 

 

 

 

  따라서 바로 이어서 설명하고 있는 --nodeps옵션을 사용하여 삭제하는 것이 바람직 할 것이다.

 

 

 

 

  --nodeps옵션은 의존성 관계에 있는 패키지들은 모두 그대로 두고서 지정한 패키지만을 삭제하므로 보다 안전한 방법이 될 수 있기 때문이다.

 

 

 

 

 

 

 

관련자료

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

공지사항


뉴스광장


  • 현재 회원수 :  60,034 명
  • 현재 강좌수 :  35,791 개
  • 현재 접속자 :  100 명