Debian altında bir paketi boşaltan disk alanını nasıl görüntülerim?


3

Gereksiz paketleri kaldırmak istiyorum. Büyük dosyaları kaldırdım (k4dirstat kullanarak) ve yalnızca soldaki bit, birkaç yüz paket kullandım ancak çoğunu kullanmıyorum (kurulum, / home olmadan 15GB alır).

'Apt-get purge' kullanarak bağımlılıkları olan bir paketi ayrı ayrı kaldırmak ve boş kalan alanı görmek mümkündür. Bununla birlikte, bir paketin kapladığı alanı görmenin yolu yavaş ve el iledir, bu bir problemdir.

Paketleri Debian'da boşalacak diskleri boşaltarak nasıl görüntülerim?


Neden dpkg-query kullanmıyorsunuz? Ayrıca bu bağlantıya bakınız .
harrymc

Lütfen bunu cevap olarak gönderin. Soruda belirtilen problemi yeterince ele alıyor gibi görünüyor.

Bu seçeneklerden hiçbiri size "bağımlılıkları kaldır" toplam boyutlarını veriyor gibi görünmüyor. örn. Kontrol gösterileri: 108765 wine1.4-amd64 Ama onu çıkarmaya gittiğinde ... root @ ciro: / var / www # sudo apt-get wine1.4-amd64'i kaldır ... Bu işlemden sonra, 216 MB disk alan boşaltılacak.
GeminiDomino

Yanıtlar:


3

Bu kesinlikle ilginç bir soruydu. Gördüğüm tek şey bana "XX serbest bırakılacak" çıktısının "apt-get remove" olduğunu gösteriyor. Daha da garibi, bu değil size -s ile bu çizgiyi ( "kuru çalıştırma") komut satırı seçeneği sunar.

UYARI [0]: Çıktıyı belirlemek için apt-get kullanmanın root olarak çalışması gerektiği anlamına gelir. Öyleyse, Bob'un aşkı için, ilk önce harcanabilir bir sanal makinede test etmekten emin olun!

UYARI [1]: Paketleri çıkarmadan önce ne yaptığınızı bildiğinizden emin olun. Bu, sistemdeki HER paketten geçecek ve kaldırıldıysa ne kadar alanın kurtarılacağını (apt-get tarafından bildirildiği şekilde) görecektir. Bu, onların çıkarılması GÜVENLİ olduğu anlamına gelmez. Tüm sorumluluğu reddederim!

Ayrıca bahsetmeye değer: Bu muhtemelen çok yavaş olacak. Umarım, ihtiyaç duyuldukça tekrar tekrar değil, durumsal olarak çalıştırmak istediğiniz bir şeydir.

Bu, size 2013'teki son düşüncemi teklif ediyorum. Umarım yardımcı olur.

#!/bin/bash 
for I in `dpkg --get-selections | grep install | grep -v adduser | grep -v apt | awk '{print $1}'`; 
do
    echo -n "$I : "
    apt-get --assume-no --purge remove $I | grep "will be freed" | awk '{print $4, $5}' >> ~/package_script.out
done

Ben ubuntu altında yazdım ve test ettim, bu yüzden debian ve diğ.

Güncelleme: adduser ve apt paketlerini dikkate almak için bir filtre ekledim. Eski kaldırmak ve sonsuza kadar sürer "çekirdek", ikincisi görünüşte kalıcı olarak kilitlenir. A Muhtemelen böyle daha fazla paket var ...


3

Ayrıca @GeminiDomino tarafından önerilen aynı temel fikri takip edebilirsiniz, ancak yalnızca belirttiğiniz paketler için:

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

Bunu, bu satırları size ekleyerek bir işleve dönüştürebilirsiniz ~/.bashrc:

space_freed(){
    sudo apt-get --assume-no --purge remove "$@" | grep "freed.$" | 
      awk '{print $4, $5}' 
}

Ve sonra komut satırından birden fazla paket adı verebilirsiniz:

$ space_freed thunderbird firefox chromium
239 MB

Paket adlarını bildiğinizi sanmıştım, aksi halde bu oldukça uzun zaman alacak. Yine de, yaklaşımımı tüm paketlerin boyutlarını listelemek için kullanabilirsiniz. Bu komut, kurulu tüm paketlerin adlarını yazacaktır:

$ dpkg -l | awk '($1=="ii"){print $2}'

space_freedHer komut satırında bu komutla çalıştırırsanız , kurulu tüm paketlerin ve kaldırarak alanın bir listesini alırsınız:

for i in $(dpkg -l | awk '($1=="ii"){print $2}'); do  
 echo -e "$i\t"$(space_freed $i); 
done

En kolay yolu, wajigkurulu en büyük paketleri listelemek için kullanmaktır :

wajig large

Soru, kullanıcının paket adlarını önceden bilmediğini söylüyor.

@ekaj: Yorumların amacı bir cevabın nasıl geliştirilebileceğini önermektir. Ben de yaptım Silmeyi önermedim. ☺

Her durumda @ ekaj, o OP, bu yüzden onun ayrıcalıklı, benim için savunduğun için teşekkürler!
terdon

@ Svetlana, tüm paketlerde çalıştırmanın bir yolunu görmek için güncellenmiş yanıtı görün.
terdon

2

Paket boyutlarını görüntüleme

Sinaptik :

"Ayarlar> Tercihler" e gidin ve "Sütunlar ve Yazı Tipleri" ni seçin, ardından "Kurulu boyut" u işaretleyin.

dpkg-query :

dpkg-query --showformat='${Package}\n${Description}' -W {package-names/patterns}


En büyük kurulu paketleri gösterme ( kaynak )

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

wajig large

dpigs

sed -ne '/^Package: \(.*\)/{s//\1/;h;};/^Installed-Size: \(.*\)/{s//\1/;G;s/\n/ /;p;}' /var/lib/dpkg/status | sort -rn

awk '{if ($1 ~ /Package/) p = $2; if ($1 ~ /Installed/) printf("%9d %s\n", $2, p)}' /var/lib/dpkg/status | sort -n | tail

1
Synaptic’in what-if-I-purge-bu boyutu gösterdiğinden emin misiniz?

Temelde sadece yapılandırma dosyası olan "remove" ve "purge" arasındaki farkı kastediyorsanız, o zaman haklı olarak bilmiyorum. Benim düşüncem, "Yüklenen boyut" takılı olan tek şey olmalı, yani temizleme büyüklüğü. Sorununuz büyük tesislerde olduğu için bunun çok önemli olduğunu sanmıyorum.
harrymc

1
Evet, çıkarma ve temizleme arasındaki farkı kastediyorum. Lütfen Synaptic'in ne gösterdiğini kontrol etmeye çalışın.

Sorun, bağımlılık paketleri de dahil olmak üzere boyutu istiyorsanız, Synaptic'in bunu veya başka bir paket yöneticisini yaptığına inanmıyorum. Artık paketlerin yanı sıra bu paketleri silmek için deborphan kullanmak için bu bağlantıya bakın .
harrymc

Orphaned paketleri, sorunun ne sorduğu değil. Ne de 'paket boyutlarını kaldır'. Yetim paketler de değildir; ilişkilidirler, ancak soruyu cevaplamazlar. (Ben zaten kontrol ettim, Lyx'in ihtiyaç duyduğu birçok yazı tipi nedeniyle sorunluyken, yetim kalmamışken; deborphan bunu göstermez.)

0

Ver aptitudebir deneyin ... kullanımı kolay keybindgs bir cli tabanlı paket yöneticisidir. Arayüzün sağ üst köşesindeki bir paket kümesini boşaltarak ne kadar alan boşaltılacağını görebilirsiniz.

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.