어떤 설치된 소프트웨어 패키지가 데비안에서 가장 많은 디스크 공간을 사용합니까?


76

루트 파티션의 디스크 공간이 부족하여 시스템에서 일부 응용 프로그램을 삭제하고 싶습니다. 가장 많은 디스크 공간을 사용하는 소프트웨어 패키지를 어떻게 알 수 있습니까? 에서 볼 수 aptitude있습니까?

dfor 와 같은 일반적인 디스크 공간 분석기에 대해서는 알고 baobab있지만 설치된 응용 프로그램에 대한 솔루션이 필요합니다.


답변:


53

가장 쉬운 방법입니다 wajig large. 패키지는 apt-install멀리 떨어져 있어야합니다 .

다른 방법으로 수행 할 수있는 두 가지 링크가 있습니다.

또한 설치된 크기는 패키지가 차지하는 공간의 일부일뿐입니다. 압축 된 버전은 여전히 ​​캐시에있을 수 있으며 공간을 차지합니다. 을 사용하여 제거 할 수 있습니다 apt-get clean.


4
패키지 캐시를 비우는 명령은 apt-get clean입니다. "검색 패키지 파일의 로컬 저장소를 지 웁니다"- 사람 apt-get을
manatwork

97

추가 패키지를 설치하지 않고 가장 쉬운 방법은 다음과 같습니다.

dpkg-query -Wf '${Installed-Size}\t${Package}\n' | sort -n

패키지는 크기 순서대로, 가장 큰 패키지가 마지막으로 표시됩니다.

불행히도 일부 시스템에서는이 목록에 제거되었지만 제거되지 않은 패키지가 포함되어 있습니다. 다음을 실행하여 이러한 모든 패키지를 제거 할 수 있습니다.

dpkg --list |grep "^rc" | cut -d " " -f 3 | xargs sudo dpkg --purge

또는 제거 된 패키지를 제거하지 않으려면이 변형을 사용하여 목록에서 '설치됨'상태가 아닌 패키지를 필터링 할 수 있습니다.

dpkg-query -Wf '${db:Status-Status} ${Installed-Size}\t${Package}\n' | sed -ne 's/^installed //p'|sort -n

2
"설치 크기"는 설치된 패키지에 필요한 공간을 미리 추정 한 것입니다. 실제 크기가 아니기 때문에 두렵습니다.
Rolf

23

당신이 원하기 때문에 see which [installed] software packages use the most disk space[,] from aptitude... 물론 사용할 수 있습니다 aptitude! CLI 또는 {interactive, TUI, non-CLI} 굉장함을 통해. 먼저 CLI와 TUI에 대해 논의 해 봅시다. 어느 쪽이든, 당신은 단지

  • 사용할 명령 줄 옵션. 다음 텍스트는 긴 옵션 (문서를 쉽게 검색하기 위해)을 사용하지만 물론 짧은 옵션도 사용할 수 있습니다.
  • 사용할 명령 줄 인수
  • 사용할 출력 형식 문자열

가장 많은 디스크 공간을 사용하는 설치된 소프트웨어 패키지를 표시하는 가장 기본적인 명령 줄은 아마도

aptitude search --sort '~installsize' --display-format '%p %I' '~i' | head

그래서 그것을 분해하자 :

  • --sort패키지 정렬 순서이며 패키지 정렬 정책을~installsize 지정합니다 .
  • installsize는 '정렬 된 설치 크기 정렬'을 의미하고 앞의 ~정렬은 내림차순을 의미합니다 (모든 정렬 정책의 기본값이 오름차순이므로).
  • --display-format을 변경합니다 <you guessed :->. 형식 문자열은 '%p %I'aptitude출력 패키지 이름, 다음 설치 크기.
  • '~i'aptitude설치된 패키지 만 검색하도록 지시 합니다.
  • ... 당신이하지 않는 한, 아주 소수의 설치 패키지를 (내 좀 제네릭 데비안 워크 스테이션 2400 이상이), 당신이 파이프에 원하는 head또는 less파일이나, 또는 어쩌면 그냥 wc -l얼마나 많은 라인을 볼 수 aptitude반환됩니다.

당신은 또한 할 수 있습니다

  1. aptitude과 함께 표시 할 때 사용할 줄 너비 (문자)를 지정하십시오 --width <your desired integer value/>. aptitude터미널 너비라고 생각되는 것을 기본값으로 사용하지만 때로는 잘못 추측하고 때로는 파일에 쓰고 싶어합니다.
  2. 형식 문자열에 자세한 정보를 표시하거나 필드 너비를 변경하십시오. 예를 들어, 강화 된 형식 문자열 '%30p %I %r %60d'표시

    • %30p : 필드 너비의 패키지 이름 = 30 자
    • %I : 예상 설치 크기
    • %r : '역수에 따라 다름':이 패키지에 의존하는 설치된 다른 패키지의 대략적인 수
    • %60d : 필드 너비 = 60 문자로 된 패키지의 간단한 설명

출력 필드에 변경 사항이 표시되지 않으면을 설정해야합니다 --width.

... {interactive, TUI}에서 이런 종류의 작업을 수행 할 수도 있습니다 aptitude. 예를 들어, 표시 형식 환경 설정을 설정하려면

  • 클릭하거나 옵션-> 환경 설정으로 이동하십시오
  • 패키지보기의 표시 형식으로 스크롤
  • 추가 %I하여 원하는 위치의 현재 값

대화 형 설치 패키지로 검색을 제한하려면 aptitude,

  • 프레스 l(소문자 L)
  • ~i대화 상자에 입력

대화 형 설치 크기에 정렬하려면 aptitude,

  • 프레스 Shift-S(대문자 S)
  • installsize대화 상자에 입력

참고 문헌 :


방법이 있는지 확실하지 않지만 항상 크기를 kB로 인쇄하는 것이 좋으므로 정렬 또는 후 처리가 훨씬 쉽습니다.
derobert

@derobert는 적성의 출력에서 ​​공백을 제어하는 ​​방법을 찾고 있었으며 크기의 출력을 변경할 방법이없는 것 같습니다.
Braiam

@Braiam 예, 제거하면 얻는 총 공간은 *texlive*얼마입니까?
terdon

@ terdon mm ... aptitude -s remove '?and(texlive,~i)'충분하지 않을까요? 또한 특정 패키지에 사용자 태그를 추가하여 작업과 같이 전체적으로 조작 할 수 있습니다.
Braiam

9

wajig를 설치하지 않으려는 경우 모든 사람이 데비안 제품을 설치했다고 생각합니다.

dpigs              - Show which installed packages occupy the most space

wajig에는 또 다른 40MB 인 Python 3이 필요합니다. debian-goodies에는 Python 2.6 이상이 필요하므로 700kb가 추가됩니다. 이것 또는 JosephH의 대답이 최고입니다!
Tim O'Brien

dpigs실제로 dpkg-query -Wf '${Installed-Size}\t${Package}\n' | sort -nr | head가장 많은 공간을 차지하는 설치된 패키지 중 상위 10 개와 동일한 결과가 있음을 알았습니다 . 여전히 dpigs간단하고 짧습니다.
clearkimura

8

우선 baobab( sudo apt-get install baobab) 와 같은 도구를 사용하여 해당 공간이 사용되는 위치 를 표시하십시오 .

여기에 이미지 설명을 입력하십시오

멋진 그래픽 개요를 제공하고 공간을 차지하는 범위를 좁히는 데 도움이됩니다. 다음을 사용하여 명령 행에서이 정보를 얻을 수도 있습니다 du.

$ sudo du -ch /

이것을 디렉토리 크기에 따라 정렬하려면 sort(GNU를 가정 sort하고 데비안의 경우가되어야 함) 가정 하십시오.

$ sudo du -ch / | sort -h

다음 단계로이 명령으로 특정 패키지가 사용중인 공간을 확인할 수 있습니다.

$ sudo apt-get --assume-no --purge remove "PACKAGE_NAME" | grep "be freed" | 
   awk '{print $4, $5}' 

예를 들어, 내 시스템에서 모든 texlive패키지를 제거하면 1,502MB의 여유 공간이 생깁니다.

$ sudo apt-get --assume-no --purge remove "texlive*" | grep "be freed" | 
   awk '{print $4, $5}' 
1,502 MB

마지막으로 다음 명령을 사용하여 설치된 모든 패키지에 대한이 정보를 얻을 수 있습니다 .

$ for i in $(dpkg -l | awk '($1=="ii"){print $2}'); do  
    echo -e "$i\t"$(sudo apt-get --assume-no --purge remove "$i" | 
                    grep "be freed" | awk '{print $4, $5}'); 
  done


3

다른 답변에 추가하려면 명령 줄을 좋아한다면 좋은 것을 사용할 수 있습니다 durep

# durep -td 1 /etc                         # or -td 2
[ /etc   319.4K (60 files, 43 dirs) ]
  90.2K [########                      ]  28.26% apache2/
  27.5K [##                            ]   8.62% apt/
  23.7K [##                            ]   7.43% mime.types
  19.7K [#                             ]   6.18% cron.daily/
  18.7K [#                             ]   5.87% services
  18.0K [#                             ]   5.64% security/
  14.7K [#                             ]   4.61% init.d/
  13.2K [#                             ]   4.13% ssl/
  11.1K [#                             ]   3.48% ld.so.cache
   9.0K [                              ]   2.81% locale.gen
   7.8K [                              ]   2.43% pam.d/
   4.5K [                              ]   1.42% default/
   4.3K [                              ]   1.35% skel/
   2.9K [                              ]   0.92% locale.alias

당신은 아마 사용하여 공간을 확보 할 수 있습니다 localepurge

# dpkg-reconfigure localepurge
# localepurge
localepurge: Disk space freed in /usr/share/locale: 26160 KiB
localepurge: Disk space freed in /usr/share/man: 1304 KiB

Total disk space freed by localepurge: 27464 KiB

마지막으로, 때로는 많은 공간을 차지할 수있는 아이콘과 글꼴을 제거 할 수 있습니다. 이 웹 사이트에서 세부 사항을보십시오

https://ownyourbits.com/2017/02/18/squeeze-disk-space-on-a-debian-system/

(자신의 비트에서 추출한 예)


dpkg-reconfigure localepurgelocalepurge사용할 수없는 패키지 에 대해 불평 합니다.
Rolf

2

목록에 몇 가지 더 많은 도구를 추가, 난 항상 사용했습니다 debfosterdeborphan내 시스템. 업그레이드 후 매달려있는 오래된 종속성을 사냥하는 데 가장 유용합니다.

apt-get autoremove훌륭하지만 모든 것을 얻지는 못하며 설치 마크를 따르기 때문에 항상 무엇을 보관하고 싶은지 알지 못합니다. apt-mark그래도 사용 하면 어느 정도 지시 할 수 있습니다.

또한 확인하십시오 : https://wiki.debian.org/ReduceDebian


0

이것은 다른 GUI 디스크 공간 사용 도구와 비슷한 KDE / QT Filelight를 추가하는 훌륭한 도구 모음이지만 주제 제목에 대한 문자적인 대답은 아닙니다.

이 스레드에 대한 의문을 말 그대로, 즉 시스템에서 가장 큰 패키지는 무엇입니까?

libreoffice 패키지 제품군은 단일 패키지는 아니지만 실제로는 큰 패키지입니다.

리눅스 커널과 관련 헤더 패키지는 두 번째로 생각됩니다. 대부분의 시스템에있는 여러 커널을 설치하면 각 커널은 약 135mB의 디스크 공간으로 대략 매년 커지는 것으로 생각하지만 그 정도는 커집니다. . 무료 비디오 드라이버가 아닌 것을 사용하는 경우 관련 드라이버 패키지 / 파일도 있습니다. libreoffice와 마찬가지로 각 커널은 실제로 2 개 또는 3 개의 패키지, 이미지, 헤더 및 드라이버 패키지로 구성 될 수 있으므로 패키지 크기 당 리터럴은 실제로 정확한 의미를 갖지 않는 한 정확하지 않습니다.

그 후, 내가 알고있는 데비안 패키지 풀에는 방대한 양의 패키지가 없습니다.

루트 파티션이 패키지를 제거하는 방법을 궁금해하기 시작했을 때 충분히 커지기 시작하면 일반적으로 더 큰 루트 파티션으로 이동하거나 크기를 조정할 때입니다.

apt-get clean은 물론 캐시 된 모든 .deb 파일을 제거하기 위해 가장 먼저 실행해야하지만 일단 일단 제거하면 2 개의 커널을 제외하고 여전히 충분한 공간이 붙어 있지 않은 경우 더 좋습니다. 정리 등은 루트 파티션 공간에서 거의 실행중인 붉은 깃발이기 때문에 파티션 크기를 늘리는 데 실용적입니다. 업그레이드. 제거 된 패키지에서 남은 구성 파일을 제거 작업으로 정리하면 디스크 공간이 작기 때문에 디스크 공간을 다시 확보하는 데 전혀 도움이되지 않지만 지금 수행 한 다음 부스러기를 정리하는 것이 좋습니다. ' 실제로 의미있는 디스크 공간을 확보 한 것으로 오인하지 마십시오.

apt-get auto-remove도 나쁘지는 않지만 패키지가 제거되는 것에 대해 때때로 틀린 점에 유의하십시오. 따라서 apt-get auto-remove는 물건을 제거하기 전에 목록을주의 깊게 확인하고 싶습니다. 기술적으로 해당 목록을 제거하는 것이 좋습니다. 구성 파일을 제거하고 동시에 제거하거나 자동 제거하면 제거 할 수 있습니다.

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