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

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@su250 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@su250 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@su250 Packages]# rpm -e cronie-1.2-4.fc10.i386

[root@su250 Packages]#

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

[root@su250 Packages]#

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

[root@su250 Packages]#

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

[root@su250 Packages]#





 

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

 

 

 

 

 

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

 

 

 

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

 

 

 

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

 

 

 

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

 

 

 

 

 

관련자료

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

공지사항


뉴스광장


  • 현재 회원수 :  60,138 명
  • 현재 강좌수 :  36,196 개
  • 현재 접속자 :  762 명