패키지를 어떻게 완전히 제거 할 수 있습니까?


188

octave3.2패키지를 새로 설치하려고 합니다.

이렇게하려면 제거 한 다음 다시 설치하려고했습니다.

다시 설치하면 오류가 발생했습니다. 패키지의 버그 일 수는 있지만 새로 설치하기 위해 모든 것을 제거했는지 확인하고 싶습니다.

이것으로 충분합니까?

sudo apt-get --purge remove octave3.2

패키지를 다시 설치하고 패키지 또는 종속성 목록에주의 할 수 있습니까?
user309924

하는 것이 좋습니다 방문
디야

답변:


185

이는 패키지 제거 효과에 대한 질문에 대한 일반적인 답변입니다. 상황에 맞는 조언을 받으려면 추가 정보, 특히 오류 메시지의 완전하고 정확한 텍스트를 포함하도록 질문을 편집해야합니다.

패키지를 제거 하거나 패키지와 모든 전역 (즉, 시스템 전체) 구성 파일을 제거합니다. 이것은 일반적으로 사람들이 패키지를 완전히 제거하는 것에 대해 이야기 할 때 의미하는 바입니다.sudo apt purge ...sudo apt --purge remove ...

그러나 이것이 시스템이 패키지를 설치하기 전과 동일하다는 것을 의미하지는 않습니다. 특히:

  • 제거하려는 패키지를 설치할 때 종속성으로 설치된 패키지는 제거되지 않습니다. 이러한 패키지가 다른 패키지의 종속성이 아니며 수동으로 설치 한 것으로 표시하지 않았다고 가정 sudo apt autoremove하거나 시스템 전체 구성 파일을 삭제하려는 경우 종속성을 제거 할 수 있습니다 sudo apt --purge autoremove.

  • 시스템 전체가 아닌 구성 파일은 제거되지 않습니다. 특히 사용자 별 구성을 제거하지 않습니다.

    • .config패키지가 제공하는 소프트웨어에 의해 생성 된 사용자의 홈 디렉토리 (또는 홈 디렉토리의 서브 디렉토리)에 있는 구성 파일 및 디렉토리는 제거하지 않습니다 .

      • 이러한 파일 / 폴더가에 저장되어 있지 않은 .config경우 대개 .자체적 으로 시작됩니다 . 어느 쪽이든 또는 플래그 ls를 사용하여 볼 수 있으며 + 를 누르 거나 보기 > 숨김 파일 표시로 이동하여 노틸러스 및 대부분의 다른 파일 브라우저 / 관리자에서 볼 수 있습니다 .-a-ACtrlH
    • 기존 사용자 별 구성 파일에 대한 변경 사항은 되 돌리지 않습니다.

    • 그것은 새로운 제거하지 않습니다 gconf또는 dconf키를, 또는 역 gconf또는 dconf구성 변경.

  • 사용 purge하거나 --purge remove대신 remove에 다른 패키지에서 제공하거나 사용자가 수동으로 생성 한 기존 시스템 전체 구성 파일의 변경 사항을 되 돌리지 않습니다. 그러나 때로는 패키지가 purge아닌 패키지를 제거하여 이러한 변경 사항을 취소 할 수 remove있습니다.


61

다음 명령을 사용하십시오.

sudo apt-get purge --auto-remove packagename

필요한 패키지와 해당 패키지와 함께 설치된 종속성을 제거합니다. 이 --auto-remove옵션은과 유사하게 작동합니다 sudo apt-get autoremove.


1
이렇게하면 특히 certbot
T.Todua

7

먼저 제거하려는 패키지 이름을 확인하십시오.

dpkg --list

그런 다음 주어진 패키지를 제거하십시오

sudo apt-get remove package_name

관련 코드를 제거

sudo apt-get purge package_name

그런 다음 자동 제거

sudo apt-get autoremove

마지막으로 모든 것이 올바르게 제거되었는지 확인하십시오

sudo apt-get clean

패키지 목록에서 제거하려는 패키지가 더 이상 나열되지 않았는지 확인하고 싶지만 선택 사항입니다.

좋은 하루 되세요


4

설치하는 동안 설치된 추가 종속성 패키지를 더 잘 추적하십시오.

The following extra packages will be installed: 
    libgssglue1 libnfsidmap2 libtirpc1 nfs-common rpcbind

원본 패키지 만 제거하면 종속성 패키지가 남아있을 수 있습니다.

따라서 다음을 사용하여 각각을 수동으로 제거해야합니다.

apt-get purge package_name

1
콘솔이 충분히 위로 스크롤되지 않으면이 패키지 목록을 얻는 방법
Luke Taylor

@LukeTaylor apt-get install package_name > output 그런 다음 less output 스크롤하여 모든 출력을 봅니다.
Harikrishnan

2

자동 설치 종속 패키지를 수동으로 제거하는 대신 다음을 사용하십시오.

 zanfilip @ zanfilip-VPCEB3L0E : ~ / jp / eclipse $ sudo apt-get-퍼지 자동 제거
    패키지 목록을 읽는 중 ... 완료
    의존성 트리 구축       
    상태 정보를 읽는 중 ... 완료
    다음 패키지가 제거됩니다
      libupstart1 * linux-headers-3.16.0-30 * linux-headers-3.16.0-30-generic *
      리눅스 이미지 -3.16.0-30-generic * 리눅스 이미지 -3.16.0-30-generic *
    0은 업그레이드, 0은 새로 설치, 5는 제거하고 23은 업그레이드하지 않습니다.
    이 작업 후에 279MB의 디스크 공간이 확보됩니다.
    계속 하시겠습니까? [Y / n]


2

일부 보안 패키지를 제거하려면 다음 명령을 사용할 수 있습니다.

dpkg --get-selections | grep PACKAGE_NAME | awk '{ print $1}'| xargs apt-get -y --purge autoremove

"-y"스위치를 잊지 마십시오. 그렇지 않으면 apt-get이 개별 패키지 제거에 대해 계속 묻고 아무것도 제거하지 않기 때문입니다.


2
이것은 유용하지만 파괴적 일 수 있습니다. 실제로 제거하고 싶지 않은 패키지를 쉽게 일치시키고 확인없이 구성을 삭제할 수 있습니다! 다행스럽게도 패키지 이름에는 공백이 포함되어 있지 않기 때문에이를 뒤집어서 -y:를 삭제할 수 있습니다 apt-get --purge autoremove $(dpkg --get-selections | grep PACKAGE_NAME | awk '{ print $1}'). 다소 안전 할 것입니다.
joeytwiddle

다음과 같이 명령을 실행하는 것이 더 안전 할 수 있습니다. dpkg --get-selections | grep PACKAGE_NAME | awk '{print $ 1}'먼저 xargs로 실행하는 것이 더 나은 방법이므로 사용자는 명령의 결과로 삭제되는 내용을 볼 수 있습니다.
Kerem Ersoy

0

또 다른 옵션은 debfoster패키지를 사용하는 것 입니다. 이것은 종속 패키지와 함께 제거 및 제거를위한 패키지를 대화식으로 찾고 제안합니다.

sudo apt install debfoster
sudo debfoster
# and optionally remove debfoster too
sudo purge debfoster
당사 사이트를 사용함과 동시에 당사의 쿠키 정책개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.