'강제'에 해당되는 글 1건

  1. 2012.05.01 Ubuntu package delete - 우분투 패키지 강제 삭제 (2)

얼마전 저는 Ubuntu 12.04를 설치 후에 개발환경 구축을 위해서 JAVA JDK 7을 설치했습니다.

ppa에 Oracle-java7-installer를 추가하고, 설치를 하려고 했는데, 인스톨 스크립트에서 에러가 나는지 계속 설치가 않되는 것이다.

뭐, 반대로 삭제는 두말할 것도 없이 삭제가 않되었습니다. 

패키지 설치/삭제시 에러메세지프로그램을 설치하거나 삭제시에 나타나는 메세지 화면


그래서 이것 저것 찾다가 강제로 삭제하는 방법을 알아 내서 이렇게 Posting을 합니다.

첫째는 dpkg 폴더에 있는 status파일을 수정합니다.


$ cd /var/lib/dpkg

$ sudo vi status


그리고 삭제하려고 하는 패키지의 이름을 찾습니다.(vi 에디터에서 글자 찾기는 "/"를 누르고 /다음에 prompt가 뜨면 찾고자 하는 글귀를 치고 엔터를 누릅니다.)


삭제할 패키지를 status찾습니다status 파일에서 삭제하고자하는 Package를 찾습니다.


그리고 찾아지는 패키지에대한 내용들이 있으면 삭제를 합니다. 삭제방법은 다음과 같이 하시면 됩니다. 


패키지를 삭제하는 예시패키지를 삭제하는 예시


위의 내용은 우분투 한국커뮤니티에 올라와있는 그림을 참고해온 것입니다.

삭제시 주의점은 간단합니다. 삭제를 할 때 저의 경우에는 vi 에디터에서 줄을 하나씩 지울 때 "d"키를 두 번씩 눌르면 됩니다. 그런데 지우실 때 어디까지 지워야 할지 모를 수가 있습니다. 그래서 다음 설명을 잘 보셔야 합니다.

지우는 부분은 Package에서 부터 다음 Package라는 구문이 나오기 전까지 입니다.

 Package: oracle-java7-installer <==여기서 부터
-내용-
-내용-
-내용-
-내용-
-내용-
-내용-<==여기까지

Package: qt4-qtconfig

위와 같이 Package정보가 여러가지가 존재 합니다. 그 중에 강제로 삭제를 하려고하는 Package만 삭제하시면 됩니다.

위의 설명 처럼 Package만 삭제하면 됩니다. 저의 경우에는 oracle-java7-installer를 지워야 하기 때문에 oracle-java7-installer package에 대한 내용을 모두 삭제하고 저장하고 vi에디터를 빠져 나옵니다. 다음으론 available파일도 수정을 합니다.


$ sudo vi available


이 파일에서도 위에서 status파일에서 했던 것과 동일하게 지우시고자 하는 Package를 찾아서 삭제하고 저장하고 파일에서 나옵니다.

다음은 설치되어있는 것들을 찾아내서 삭제해야 합니다. 저는 패키지 이름이 oracle-java7-installer이기 때문에 아래와 같이 {패키지 이름}.list를 찾아서 내용을 확인합니다. 여기서 어디에 oracle-java7-installer에 관련된 파일들이 깔려 있는지를 볼 수가 있습니다.

$ sudo vi /var/lib/dpkg/info/oralce-java7-installer.list


이렇게하면 아래와 같이 해당 패키지의 리스트 정보를 보여 줍니다.<아래는 단지 참고 화면입니다.>


dpkg info에 깔려 있는 패키지의 Deploy정보dpkg info에 깔려 있는 패키지의 Deploy정보


주의 하셔야 할 것은 폴더는 삭제하시면 안된다는 것입니다. /usr/share/doc/ 아래에 있는 것만 빼고요.....^^

*.desktop 파일이나 *.png, *.xpm등은 물론 tar파일 zip, gzip 파일들을 모두 삭제합니다. 찾아서 삭제하셔야 합니다.

자 이제는 *.list와 같은 것들을 찾아 삭제합니다.


$ sudo rm oracle-java7-installer.list oracle-java7-installer.postinst oracle-java7-installer.prerm oracle-java7-installer.md5sums oracle-java7-installer.postrm 


자 이것만 하고 나면 일단 모든 것을 수동으로 삭제했습니다. 자 이제는 apt-get 명령어를 이용해서 패키지에 대해서 clean을 해줍니다.


$ sudo apt-get clean

$ sudo apt-get update

$ sudo apt-get upgrade


여기까지 했으면 수동으로 잘못된 패키지를 모두 삭제한 것입니다.

뭐 저에 경우에는 이 이후로 에러메세지는 않뜨네요^^ ㅋㅋㅋㅋㅋ

그런데 조금 문제가 있네요. 리눅스가 발전하기 위해서는 이런 부분들이 조금더 편하게 할 수 있도록 바꾸는 것이 필요 한 것 같네요.



출처 : http://ubuntu.or.kr/viewtopic.php?p=36847


Posted by gofly

댓글을 달아 주세요

  1. Favicon of https://belong2jesus.tistory.com BlogIcon gofly 2012.05.04 01:04 신고  댓글주소  수정/삭제  댓글쓰기

    그런데 좀 문제가 있네요.....;;;;; 의존성이 있는 패키지는 일일이 다 찾아서 지워야 하는 것 같은데.....잘못 지우면 패키지를 영영 돌이킬 수 없는 상황으로........아마 내일 Ubuntu를 다시 깔아야 할 것 같네요^^;;;;; ㅎㄷㄷ;;;;;;

  2. 5my갓 2012.07.16 18:23  댓글주소  수정/삭제  댓글쓰기

    읔 .. 다시 까는중 ㅜ ㅜ
    여튼 좋은 정보 감사합니다. ~