나에게 데비안 머신이 있고 쓸모없는 패키지를 제거하여 "/"에 공간을 확보하고 싶다고 가정해 보겠습니다. 검토에 적합한 후보 패키지를 찾기 위해 먼저 가장 큰 패키지에 집중하고 싶었습니다.
것 같다표준 용액이것의 목적은 설치된 모든 패키지를 설치 크기별로 나열하는 것입니다. 그러나 이 솔루션에는 종속성을 무시하고 패키지가 자동으로 설치되었는지 수동으로 설치되었는지 무시하므로 많은 단점이 있습니다.
- 패키지가 크지만 이에 의존하는 수동으로 설치된 패키지가 많은 경우 제거를 고려하기에 좋은 후보가 아닐 수 있습니다(예: libicu52를 제거하는 것은 패키지가 크더라도 나쁜 생각입니다).
- 패키지가 다른 패키지에 의존하는 경우 두 번째 패키지를 제거하면 첫 번째 패키지를 제거하여 얻은 공간도 절약됩니다(예: libwine을 제거하면 wine도 제거됨)
- 패키지 A가 다른 패키지 B에 종속되고 세 번째 패키지 C가 B의 종속성으로만 자동 설치되는 경우 A를 제거하면 B도 제거되고 C도 자동으로 제거됩니다. 이 점을 고려해야 합니다(예: wesnoth- 1.10 - 제거). 데이터는 wesnoth-1.10을 삭제합니다. 이는 wesnoth-1.10-music이 삭제된다는 의미입니다.
작업에 적합한 도구는 수동으로 설치된 패키지 제거를 제안하고 해당 패키지를 제거한 다음 자동 제거(더 이상 필요하지 않은 자동으로 설치된 패키지 제거)를 실행하여 공간을 확보해야 하는 것 같습니다.
물론 다음 변형을 사용하여 이를 시뮬레이션할 수 있습니다.이 솔루션, 하지만 느리고 추악합니다. 그래서 내 질문은: 패키지의 종속성 그래프를 보고 이 정보를 계산할 수 있는 표준 도구가 있습니까? (이에 대한 스크립트를 작성하려고 생각 중이지만 아직 존재하지 않는지 확인하고 싶습니다.)
답변1
apt-cache depends --installed
모든 도구( , apt-cache rdepends --installed --recurse
, 등) apt-mark showmanual
가 존재하지만 원스톱 명령줄 솔루션에 대해서는 잘 모르겠습니다 . dpigs
명령줄 스크립트를 함께 사용하면 수동으로 설치된 역방향 종속성이 거의 없는 대규모 패키지를 찾을 수 있습니다. 제가 출발점으로 사용한 개념 증명은 다음과 같습니다.
dpigs | awk 'NR == 1 {print $2}' | xargs apt-cache rdepends --installed --important --recurse | awk '!/:/ {print $1}' | sort -u
반면에 여러 방향에서 그래프를 복잡하게 분석하려는 경우(예: 수동으로 설치된 패키지 세트 중 가장 큰 중복되는 디스크 재귀 종속성 세트가 있는 경우) 빠르게 제어할 수 없게 될 수 있습니다. 이 시점에서 좀 더 사용자 정의 가능한 항목( awk
또는 ?) 을 고려할 수 있습니다 python
.
전체 공개:나는 다음 프로젝트에 기여했습니다. 이런 일이 당신에게 중요하다면, 그것을 고려하시기 바랍니다. 데비안 저장소에 비슷한 프로젝트가 이미 있다는 것을 알았다면 그것을 게시할 수도 있습니다.
나는 명령줄에서 모든 작업을 수행하는 것을 선호하지만 다음을 찾을 수 있습니다.태평양 지도(또한깃허브) 유용한 대안입니다. 원래 Kyle Keen이 Arch Linux용으로 작성했지만 이제는 deb 및 rpm 기반 시스템과도 호환됩니다. 한때 Ubuntu 시스템의 샘플 출력이 있었지만 찾을 수 없으므로 다음은 그의 사이트의 예입니다.
.
한동안 사용하지 않았지만 재귀 및 역 종속성을 위해 특정 패키지를 다른 색상으로 강조 표시하는 플래그도 있다고 생각합니다.
답변2
"apt autoremove"를 실행하거나 다음 단계를 따르십시오.https://wiki.debian.org/ReduceDebian(데비안의 공간을 점진적으로 줄이는 방법을 지적하십시오.) 자동으로 콘텐츠를 삭제합니다.
apt autoremo는 제거할 수 있는 불필요한 패키지를 찾아 디스크 공간을 차지합니다.