제거 된 패키지의 권장 및 제안 된 종속성을 제거하는 방법은 무엇입니까?


16

제거 된 패키지의 종속성을 제거하는 방법을 알고 있습니까? 그리고 나는 시도했다

apt-get autoremove

그러나 다른 패키지에서 권장하거나 제안한 종속성은 제거하지 않습니다.

즉, Y를 권장하는 패키지 X를 설치하지만 Y를 설치하지 않은 경우 Y에 의존하는 Z 패키지를 설치합니다.

apt-get remove --auto-remove Z

Y는 아무것도 의존하지 않아도 자동으로 제거되지 않습니다. (X는 Y에 의존하지 않더라도 Y를 픽업했습니다.)


1
대신이 작업을 수행하는 패키지가 무엇인지 말씀해 주시겠습니까?
브라이 암

많은 예가 있으므로 위의 설명에서 문제의 본질을 추출하려고했습니다. texlive-full 설치를 고려하십시오. 그것은 많은 기존의 패키지에 의해 제안되었지만 (필수는 아님) 많은 글꼴 패키지를 설치합니다 (정확히 기억할 수는 없지만 기존 libreoffice 또는 matplotlib 또는 옥타브가 이것을 제안했다고 생각합니다). 따라서 문제는 "apt-get install texlive-full"다음에 "apt-get remove --purge --auto-remove texlive-full"이 시스템을 원래 상태로 유지하지 않는다는 것입니다.
user2809402

답변:


14

시스템에서 권장 패키지를 제거하려면, 설치된 일부 패키지가 여전히 권장 (또는 제안)되어 있어도 파일에 다음을 입력하십시오. /etc/apt/apt.conf.d/99_norecommends (생성).

APT::Install-Recommends "false";
APT::AutoRemove::RecommendsImportant "false";
APT::AutoRemove::SuggestsImportant "false";

이러한 옵션에 대한 설명서 는 여기에 있습니다 .

그런 다음, 다음 번의 적절한 실행으로 모두 제거해야합니다. 그렇지 않은 경우 시작aptitudeg 하고 g다시 입력 하십시오.

이 구성은 또한 사용시 권장 패키지 자동 설치를 비활성화합니다 apt-get. 들어 aptitude이 콘솔 GUI에서 수행 할 수 있으며, 메뉴 옵션> 환경 설정> (그 선택을 취소합니다) "자동으로 패키지를 권장 설치".


권장 사항은 대부분 유용 하므로 권장 사항을 설치하지 않는 것이 좋습니다 .
Braiam

1
@Braiam 이것은 OP가 요구 한 것이 아닙니다. 당신의 의견은 저를위한 것이 아니라 그를위한 것입니다.
Totor

나는 그것이 과잉 일 수도 있다고 말하고 있습니다.
Braiam

@Braiam 그것은 당신의 POV입니다. 나는 InstallRecommends장애인 과 꽤 잘 산다 . 레코드의 경우, 데비안 스퀴즈가 출시 될 때까지, 즉 2011 년 2 월 이후 (우분투에 대해 알지 못함)까지 기본적으로 비활성화되었습니다. 또한 서버 또는 데스크탑 설정에서 동일한 구성이 필요하지 않을 수 있습니다.
Totor

2
InstallRecommends : 왜 5MB의 물건을 설치해야합니까? 원치 않는 1GB의 물건을 설치할 수있을 때?
Mark K Cowan

7

APT 옵션 재정의

종속성과 달리 자동으로 설치된 "권장"또는 "추천"패키지는 다음과 같이 무시할 수 있습니다. apt-get autoremove .

다른 곳에서 설명 하듯이이 APT 동작은 구성에서 변경 될 수 있습니다.

마찬가지로 apt-get명령 구성을 통해 명령 구성을 일시적으로 변경할 수 있습니다 -o.

이것은 자동 제거가 남은 "권장"패키지와 "추천"패키지를 사용하지 않는 종속성과 함께 제거하는 방법입니다.

sudo apt-get autoremove -o APT::Autoremove::RecommendsImportant=0 -o APT::Autoremove::SuggestsImportant=0

주의!

일부 기능이 손실 될 수 있습니다. 조사하고 다시 설치할 준비를하십시오. 이러한 패키지를 그대로 두는 것이 더 쉬울 수 있습니다.

다른 옵션

특정 패키지에 대해서만 '권장'및 '제안'패키지를 제거하려면 apt history log를 살펴보십시오.


1
단순히 분석 등의 패키지를하는 수행 건조 실행apt-get-s에 옵션 및 파이프 grep ^Remv- 그 명령 그래서 :apt-get autoremove -s -o APT::Autoremove::RecommendsImportant=0 -o APT::Autoremove::SuggestsImportant=0 | grep ^Remv
myrdd

1

실제로 명령은 다음과 같습니다.

sudo apt-get autoremove <Z>

그러나 이것은 속임수입니다! 종속성 중 하나에 권장 / 제안하는 다른 패키지가 이전에 설치된 경우 apt는 제거하지 않습니다.

패키지를 지정하지 않았지만, 예를 들어 IcedTea 플러그인을 설치하는 경우 종속성별로 Java / OpenJRE를 설치합니다. 내가 사용하여 제거하면sudo apt-get autoremove icedtea-7-pluginLibreOffice에서 패키지를 제안하기 때문에 Java / OpenJRE가 제거되지 않음을 알 수 있습니다.

따라서 제거하려면 패키지를 제거하려는 패키지에 대해 너무 구체적이어야합니다 autoremove.

sudo apt-get autoremove <Z> <dependency of Z>

이렇게하면 패키지가 제거 될 수 있습니다.

deborphan을 사용하여 일부 종속성을 제거 할 수도 있습니다.


1
그건 그렇고, apt 맨 페이지를 이해하면 autoremove는 패키지 이름을 기대하지 않으며 시스템의 불필요한 패키지 종속성을 모두 정리합니다. 따라서 "apt-get remove Z"다음에 "apt-get autoremove"라는 2 단계를 수행해야합니다. 이 두 단계는 원래 질문에서 언급했듯이 "apt-get remove --auto-remove Z"를 사용하여 한 번에 수행 할 수 있습니다. 그러나 내가 말했듯이 문제는 남은 패키지가 다른 것으로 제안 된 경우 제거되지 않은 패키지가 있다는 것입니다.
user2809402

1
예, 당신은 내 문제를 완벽하게 설명했습니다. 감사합니다. 그러나 불행히도 /var/log/apt/history.log로 이동하여 몇 개월 전에 Z와 함께 설치된 패키지 Y를 모두보고 싶지 않기 때문에 해결하지 못했습니다 (예 : Y = java / jre, Z = icedtea plugin)를 수동으로 apt 명령 행에 추가하십시오. Z를 지정하고 나머지 기존 패키지가 다른 기존 패키지 X (예 : X = libreoffice)에서 제안하더라도 자동으로 선택되도록하고 싶습니다.
user2809402

1
불행히도, 이것은 apt 시스템이 작동하는 방식이며, 더 이상 필요하지 않더라도 패키지를 제거하는 대신 설치된 상태로 유지하는 것을 선호합니다. 그것들을 제거하는 유일한 방법은 수동 또는 수동 deborphan이지만 deborphan은 여전히 ​​일부 패키지를 놓칠 수 있습니다. Debug::옵션을 사용하고 이것에 대한 다른 답변 도 확인할 수 있습니다 . 을 사용할 수도 --no-install-recommends있지만 apt-get은 기본적으로 제안 된 패키지를 설치하지 않습니다.
Braiam

@ user2809402 또한 확인해야합니다 askubuntu.com/q/244470/169736
Braiam

Braiam- deborphan 포인터에 감사드립니다. 제가 확인하겠습니다.
user2809402

-1

<Z>의존성이있는 패키지를 제거하려면 다음을 입력하십시오.

sudo apt-get autoremove --purge <Z>

3
고맙지 만 불행하게도 "--purge"를 추가하면 "autoremove"로 제거 된 패키지 구성이 제거됩니다. 그러나 내가 알 수 있는 한 제거 패키지에 대한 결정은 변경되지 않습니다 . 즉, 일부 기존 패키지 X에서 제안한 Z의 종속성은 "--purge"를 지정하는지 여부에 관계없이 여전히 제거되지 않습니다.
user2809402

1
또한 autoremove시스템 전체 에서 작동합니다. 따라서 호출 할 때마다 autoremove시스템에서 사용하지 않는 모든 패키지가 제거됩니다. 패키지를 설치 autoremoving하면 일반적으로 시스템이 같은 상태로 돌아 가지 않고 대신 "남은"패키지가 남게됩니다.
Rolf
당사 사이트를 사용함과 동시에 당사의 쿠키 정책개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.