Hangi yüklü yazılım paketleri Debian'da en fazla disk alanını kullanıyor?


76

Kök bölümümdeki disk alanı azalıyor, bu yüzden bazı uygulamaları sistemden silmek istiyorum. Hangi yazılım paketlerinin en fazla disk alanını kullandığını nasıl görebilirim? Bunu görüntülemek mümkün mü aptitude?

dfVeya gibi genel disk alanı analizörleri hakkında bilgim var baobab, ancak yüklü uygulamalar için çözümlere ihtiyacım var.


Yanıtlar:


53

En kolay koşmaktır wajig large. Paket bir apt-installanda olmalıdır .

İşte bunu yapmanın diğer yolları için iki link:

Ayrıca, kurulu boyutun paketler tarafından kaplanan alanın sadece bir parçası olduğunu unutmayın. Sıkıştırılmış sürüm muhtemelen hala önbellektedir ve bu da biraz yer kaplar. Bunları kaldırabilirsiniz apt-get clean.


4
Paket önbelleğini boşaltma komutu apt-get clean. “Alınan paket dosyalarının yerel deposunu temizler” - man apt-get
manatwork

97

En kolay yol (ek paket kurmadan):

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

hangi boyutta paketleri görüntüler, en büyük paket.

Maalesef, en azından bazı sistemlerde, bu liste kaldırılmış ancak temizlenmemiş paketleri içermektedir. Tüm bu paketler çalıştırılarak temizlenebilir:

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

Veya kaldırılmış paketleri temizlemek istemiyorsanız, bu varyantı 'yüklü' durumda olmayan paketleri listeden filtrelemek için kullanabilirsiniz:

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

2
"Yüklü boyut", yüklü paketin ne kadar alana ihtiyaç duyacağı konusunda önceden tahmin edilmiş bir tahmindir. Bu gerçek boyut değil, korkarım.
Rolf

23

İstediğinizden beri see which [installed] software packages use the most disk space[,] from aptitude... elbette kullanabilirsiniz aptitude! CLI veya {interaktif, TUI, CLI olmayan} uygunsuzlukları aracılığıyla. Önce CLI'yi, sonra TUI'yi tartışalım. Her iki durumda da, sadece bilmek gerekir

  • kullanılacak komut satırı seçenekleri. Aşağıdaki metin uzun seçenekler kullanır (dokümantasyon arama kolaylığı için), fakat elbette kısa seçenekler de mevcuttur.
  • kullanılacak komut satırı argümanı
  • kullanılacak çıktı biçimi dizesi

Hangi yüklü yazılım paketlerinin en fazla disk alanını kullandığını göstermek için en temel komut satırı

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

öyleyse hadi keselim şunu:

  • --sortpaket sıralama düzenidir ve ~installsizebir paket sıralama politikası belirtir .
  • installsize'sıralı (tahmini) yüklü boyut' ~anlamına gelir ve önceki , azalan sıralama anlamına gelir (tüm sıralama politikaları için varsayılan değer artandır).
  • --display-formatdeğiştirir <you guessed :->. Biçim dizesi '%p %I' söyler aptitudeçıkış paket adını, ardından yüklü boyuta.
  • '~i'aptitudesadece kurulu paketleri aramayı söyler .
  • ... Eğer yoksa ve çok az sayıda yüklü paketleri (benim tür-jenerik Debian iş istasyonu 2400 üzerinde vardır), sen borusuna istediğiniz headveya lessbir dosya veya, ya da belki sadece wc -lkaç satır görmek aptitudeiade edilecektir.

Ayrıca isteyebilirsiniz

  1. aptitudeile görüntülenirken kullanılacak satır genişliğini (karakter cinsinden) belirtin --width <your desired integer value/>. aptitudeterminal genişliğinize inandığına varsayılan olarak belirlenir, ancak bazen yanlış tahmin eder ve bazen bir dosyaya vb yazmak istersiniz.
  2. biçim dizginizde daha fazla bilgi görüntüleyin veya alan genişliğini değiştirin. Örneğin, gelişmiş biçim dizgem '%30p %I %r %60d'görüntüleniyor

    • %30p : alan genişliğinde paket adı = 30 karakter
    • %I : tahmini kurulum boyutu
    • %r : 'ters bağlı sayı': bu pakete bağlı olan kurulu diğer paketlerin yaklaşık sayısı
    • %60d : paketin alan genişliğindeki kısa açıklaması = 60 karakter

Çıkış alanınızda değişiklik görmüyorsanız, büyük olasılıkla ayarlamanız gerektiğini unutmayın --width.

... ve bu tür şeyleri {interactive, TUI} 'de yapabilirsiniz aptitude. Örneğin, ekran formatı tercihini ayarlamak için

  • Seçenekler-> Tercihler'e tıklayın veya gidin
  • Paket görünümleri için ekran formatına ilerleyin
  • %Iistenen konuma mevcut değere ekleyin

Etkileşimli yüklü paketlere aramayı sınırlamak için aptitude,

  • basın l(küçük harf L)
  • ~iiletişim kutusuna gir

İnteraktif boyutta kurulu büyüklüğü sıralamak için aptitude,

  • basın Shift-S(büyük harf S)
  • installsizeiletişim kutusuna gir

Referanslar:


Bunu yapmanın bir yolu olup olmadığından emin değilim, ancak boyutu her zaman kB olarak yazdırmak güzel olurdu, bu işlem sıralamayı veya işlemden geçirmeyi daha kolay hale getirirdi.
derobert

@derobert, yetenek çıktısındaki beyaz alanı nasıl kontrol edebileceğimi araştırıyordu, görünüşe göre, boyut çıktısını değiştirmenin bir yolu yoktu.
Braiam

@Braiam evet, kaldırırsam kazanılan toplam alan *texlive*nedir?
terdon

@terdon mm ... aptitude -s remove '?and(texlive,~i)'yetmez mi? Ayrıca, belirli bir pakete bir kullanıcı etiketi ekleyebilirsiniz, böylece bunları bir bütün olarak işleyebilirsiniz (görevler gibi).
Braiam

9

Wajig yüklemek istemiyorsanız. Herkesin debian-goodies yüklü olduğunu hayal ediyorum:

dpigs              - Show which installed packages occupy the most space

wajig, başka bir 40 mb olan python 3'ü gerektirir. debian-goodies, python 2.6+ gerektirir, yani 700kb ek. Bu veya JosephH'in cevabı en iyisidir!
Tim O'Brien,

dpigsAslında, dpkg-query -Wf '${Installed-Size}\t${Package}\n' | sort -nr | headen fazla yer kaplayan kurulu paketlerin ilk 10'u ile aynı sonucun olduğunu fark ettim . Yine de, dpigsbasit ve kısa.
clearkimura

8

Her şeyden önce, o alanın nerede kullanıldığını size göstermek için baobab( sudo apt-get install baobab) gibi bir araç kullanın :

görüntü tanımını buraya girin

Bu size güzel bir grafiksel bakış sunacak ve alanınızı kaplayan şeyleri daraltmanıza yardımcı olacaktır. Bu bilgiyi komut satırından aşağıdakileri kullanarak da alabilirsiniz du:

$ sudo du -ch /

Aracılığıyla bu geçirin sort(varsayarak GNU sortdizini boyutuna göre sıralamak için Debian durum olmalıdır whicih,):

$ sudo du -ch / | sort -h

Bir sonraki adım olarak, belirli bir paketin bu komutla ne kadar alan kullandığını görebilirsiniz:

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

Sistemimde, örneğin, tüm texlivepaketlerin çıkarılması 1.502 MB ücretsiz olacaktır:

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

Son olarak, bu komutu tüm yüklü paketler için bu komutla alabilirsiniz:

$ 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

Diğer cevaplara eklemek için komut satırını isterseniz eski notları kullanabilirsiniz. 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

Muhtemelen kullanarak boş alan olabilir 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

Son olarak, muhtemelen çok fazla zaman alan simgelerden ve yazı tiplerinden kurtulabilirsiniz. Bu web sitesinde detaylara bakın

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

(ownyourbits'ten alınmış örnekler)


dpkg-reconfigure localepurgelocalepurgepaketin mevcut olmadığından şikayet ediyor .
Rolf

2

Listeye birkaç araç daha ekleyerek, her zaman debfosterve deborphansistemlerimde kullandım. En çok yükseltmelerden sonra takılan eski bağımlılıkları avlamak için çok kullanışlıdır.

apt-get autoremoveharika, ancak her şeyi alamıyor ve kurulum işaretlerini takip ettiğinden, ne saklamak istediğinizi her zaman bilmiyor. Kullanmak apt-mark, bir dereceye kadar yönlendirmenize izin verir.

Ayrıca bakınız: https://wiki.debian.org/ReduceDebian


0

Bu, diğer gui disk alanı kullanım araçlarına benzeyen KDE / QT Filelight'ı ekleyeceğim güzel bir araç koleksiyonu olsa da, konu başlığının gerçek cevabı değil.

Kelimenin tam anlamıyla bu konuyu soruyu ele alırsanız, yani, kural olarak sisteminizdeki en büyük paketler nelerdir:

Tek bir paket olmayan libreoffice paket paketi, ancak gerçekten büyük.

Linux çekirdeği ve ilişkili başlık paketleri geliyor, sanırım ikinci ve birçok sistemin kurulu olduğu, çoğu sistemin sahip olma eğiliminde olduğu, her birinin etrafında 135 mB disk alanı olduğu, kabaca her yıl daha da büyüdüğü, . Özgür olmayan video sürücüleri kullanıyorsanız, ilişkili sürücü paketleri / dosyaları da olacaktır. Libreoffice'de olduğu gibi, her bir çekirdeğin aslında 2 veya 3 paketten, görüntü, başlık ve sürücü paketlerinden oluşabileceğini unutmayın; bu nedenle, paket büyüklüğü sayısı başına bir değişmez, kaba bir anlam elde etmek dışında aslında doğru değildir.

Onlardan sonra Debian'ın paket havuzunda farkında olduğum çok fazla büyük paket yok.

Kök bölümünün, paketleri küçültmek için nasıl kurtulacağınızı merak etmeye başladığınız yere yetmeye başladığında, genellikle daha büyük bir kök bölümüne geçmenin / yeniden boyutlandırmanın tam zamanı olduğunu anlıyorum.

apt-get clean elbette, tüm önbelleğe alınmış .deb dosyalarından kurtulmak için çalışan ilk şeydir, ancak bir kere kaldırırsanız ve 2 çekirdekten başka bir deyişle, eğer hala yeterince yer kalmadıysanız, daha fazlası Temizleme boyutu vb. kök bölme alanının dışına yakın koştuğunuz kırmızı bayraklar olduğundan, bölme boyutunu artırmak için pratik bir yöntemdir, ancak apt için paketleri indirmek ve ayıklamak için yeterli oda yoksa, gerçek bir sorun olabilir Yükselt. Temizleme işlemleriyle temizleme artıkları kaldırılan paketlerden kalan config dosyaları küçük olduklarından disk alanını yeniden kazanma konusunda hiç iyi bir şey yapmazlar, ancak şimdi ve sonra sadece ham alanı temizlemek için iyi Herhangi bir anlamlı disk alanını yeniden kazanmakla karıştırılma.

apt-get auto-remove ya da kötü değildir, ancak paketin kaldırılmasının bazen yanlış olduğunu unutmayın, bu nedenle apt öğelerini çıkarmadan önce bu listeyi dikkatlice kontrol etmek istersiniz. Teknik olarak bu listeyi temizlemek daha iyi, bu şekilde config dosyalarından kurtulacağınız gibi aynı zamanda kaldırmanız ya da otomatik olarak kaldırmanızın yerinde olacağına inanıyorum.

Sitemizi kullandığınızda şunları okuyup anladığınızı kabul etmiş olursunuz: Çerez Politikası ve Gizlilik Politikası.
Licensed under cc by-sa 3.0 with attribution required.