특정 저장소에서만 모든 패키지를 정리하고 삭제하는 apt 명령은 무엇입니까?

특정 저장소에서만 모든 패키지를 정리하고 삭제하는 apt 명령은 무엇입니까?

저는 Mate의 사용자 정의 버전을 데스크톱 환경으로 사용하는 Ubuntu 16.04의 변형인 Trisquel 7을 사용하고 있습니다.

나는https://deb.nodesource.com/node_8.x해커톤에서 사용하는 일부 npm 항목을 설치하기 위한 저장소입니다. 더 이상 이러한 항목이 필요하지 않으며 이 리포지토리에서 설치된 모든 패키지를 제거하고 싶습니다. 하지만 어떤 패키지를 설치했는지 기억이 나지 않습니다.

시스템의 모든 저장소에서 설치된 패키지 목록을 보여주는 Synaptic의 "Origin" 탭을 사용해 보았습니다. 그러나 어떤 이유로 deb.nodesource 저장소가 거기에 표시되지 않습니다(다른 모든 기본 저장소와 추가된 저장소가 거기에 있습니다).

내 질문은 다음과 같습니다. 1) 리포지토리를 삭제하면 해당 리포지토리에 설치된 모든 패키지가 자동으로 삭제됩니까? 2) 그렇지 않은 경우 저장소에서 설치된 모든 패키지를 제거하고 어떻게 제거할 수 있습니까?

Trisquel의 Mate GUI는 Ubuntu의 기본 데스크탑 GUI와 매우 다르기 때문에 명령줄 답변을 선호합니다.

답변1

저장소를 삭제해도 저장소에 설치된 패키지는 제거되지 않습니다. 특정 저장소에서 패키지를 제거하려면 다음을 수행해야 합니다.앞으로저장소 자체를 삭제하십시오.

시스템은 패키지가 어디서 설치되었는지 기억하지 못하고 현재 패키지를 사용할 수 있는 위치만 알고 있습니다. 따라서 한 가지 가능한 접근 방식은 다음과 같습니다.

  • aptitude아직 설치되지 않았다면 설치해 주세요.
  • 제거할 저장소에서 사용 가능한 모든 설치된 패키지를 나열합니다(일부 버전의 경우).

    aptitude search '~O"Node Source" ~i'
    
  • 반환된 각 패키지에 대해 어떤 버전이 설치되어 있는지 확인하고 제거하려는 저장소에서 어떤 버전이 설치되었는지 확인하세요.

    apt policy nodejs
    
  • 저장소 정의를 삭제합니다.

  • 위에 나열된 패키지를 제거하십시오.

또 다른 방법은 다음을 사용하여 저장소를 삭제한 다음 더 이상 일치하지 않는 저장소의 패키지를 나열하는 것입니다 apt-show-versions. 이렇게 하면 "아카이브에서 사용 가능한 버전 없음"(구성된 저장소에서) 또는 "아카이브에 있는 것보다 많은 패키지가 나열됩니다. "버전 업데이트"(구성된 저장소에서 사용할 수 있지만 이전 버전인 패키지) 그런 다음 해당 패키지를 제거 및/또는 다운그레이드할 수 있습니다.

관련 정보