Paket perangkat lunak yang diinstal mana yang menggunakan ruang disk paling banyak di Debian?

77

Ruang disk pada partisi root saya hampir habis, jadi saya ingin menghapus beberapa aplikasi dari sistem. Bagaimana saya bisa melihat paket perangkat lunak mana yang menggunakan ruang disk paling banyak? Apakah mungkin untuk melihatnya dari aptitude?

Saya tahu tentang penganalisis ruang disk generik suka dfatau baobab, tapi saya perlu solusi untuk aplikasi yang diinstal.

Mirzhan Irkegulov
sumber
askubuntu.com/questions/62290/…
Ciro Santilli 新疆 改造 中心 法轮功 六四 事件

Jawaban:

54

Paling mudah untuk dijalankan wajig large. Paket tersebut harus berupa an- apt-installout.

Berikut adalah dua tautan untuk cara lain melakukannya:

Juga ingat bahwa ukuran yang terinstal hanya sebagian dari ruang yang diambil oleh paket. Versi yang dikompresi mungkin masih dalam cache, dan itu membutuhkan ruang juga. Anda dapat menghapusnya dengan apt-get clean.

pembunuh kulit
sumber
4
Perintah untuk mengosongkan cache paket adalah apt-get clean. “
Membersihkan
98

Cara termudah (tanpa menginstal paket tambahan) adalah:

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

yang menampilkan paket dalam urutan ukuran, paket terbesar terakhir.

Sayangnya pada setidaknya beberapa sistem, daftar ini termasuk paket yang telah dihapus tetapi tidak dibersihkan. Semua paket tersebut dapat dibersihkan dengan menjalankan:

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

Atau jika Anda tidak ingin menghapus paket yang dihapus, Anda dapat menggunakan varian ini untuk memfilter paket yang tidak dalam status 'diinstal' dari daftar:

dpkg-query -Wf '${db:Status-Status} ${Installed-Size}\t${Package}\n' | sed -ne 's/^installed //p'|sort -n
JosephH
sumber
2
"Ukuran Terpasang" adalah perkiraan awal tentang seberapa banyak ruang yang dibutuhkan paket yang diinstal. Ini bukan ukuran sebenarnya, saya khawatir.
Rolf
23

Karena Anda ingin see which [installed] software packages use the most disk space[,] from aptitude... tentu saja bisa Anda gunakan aptitude! melalui kedahsyatan CLI atau {interaktif, TUI, non-CLI} nya. Mari kita bahas CLI dulu, lalu TUI. Either way, Anda hanya perlu tahu

  • opsi baris perintah untuk digunakan. Teks berikut menggunakan opsi panjang (untuk kemudahan mencari dokumentasi), tetapi tentu saja opsi pendek juga tersedia.
  • argumen baris perintah untuk digunakan
  • string format keluaran untuk digunakan

Baris perintah paling dasar untuk menunjukkan paket perangkat lunak yang diinstal menggunakan ruang disk paling mungkin

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

jadi mari kita jabarkan:

  • --sortadalah urutan pengurutan paket, dan ~installsizemenentukan kebijakan pengurutan paket .
  • installsizeberarti 'sortir pada (ukuran perkiraan) ukuran terinstal', dan sebelumnya ~berarti sortir turun (karena default untuk semua kebijakan sortir adalah naik).
  • --display-formatmengubah <you guessed :->. The format string '%p %I' memberitahu aptitudeuntuk output nama paket, ukuran kemudian diinstal.
  • '~i'memberitahu aptitudeuntuk mencari hanya paket yang diinstal.
  • ... dan, kecuali Anda memiliki sangat sedikit paket diinstal (agak-generik Debian workstation saya memiliki lebih dari 2400), Anda ingin pipa ke headatau lessatau file, atau mungkin hanya wc -luntuk melihat berapa banyak baris aptitudeakan kembali.

Anda mungkin juga ingin

  1. tentukan lebar garis (dalam karakter) untuk aptitudedigunakan saat menampilkan, dengan --width <your desired integer value/>. aptitudeakan default ke apa yang diyakini sebagai lebar terminal Anda, tetapi kadang-kadang tebakan salah, dan kadang-kadang Anda ingin menulis ke file, dll.
  2. tampilkan lebih banyak informasi dalam string format Anda, atau ubah lebar bidang. Misalnya, string format saya yang disempurnakan '%30p %I %r %60d'menampilkan

    • %30p : nama paket di bidang lebar = 30 karakter
    • %I : perkiraan ukuran pemasangan
    • %r : 'mundur tergantung jumlah': perkiraan jumlah paket yang diinstal lainnya yang tergantung pada paket ini
    • %60d : deskripsi singkat paket dalam bidang lebar = 60 karakter

Perhatikan bahwa, jika Anda tidak melihat perubahan di bidang output Anda, Anda mungkin perlu mengatur --width.

... dan Anda juga dapat melakukan hal semacam ini di {interaktif, TUI} aptitude. Misalnya, untuk mengatur preferensi format tampilan,

  • klik atau arahkan ke Pilihan-> Preferensi
  • gulir ke Format tampilan untuk tampilan paket
  • menambah %Inilai saat ini di posisi yang diinginkan

Untuk membatasi pencarian ke paket yang diinstal di interaktif aptitude,

  • tekan l(huruf kecil L)
  • masukkan ~idalam dialog

Untuk mengurutkan ukuran yang diinstal di interaktif aptitude,

  • tekan Shift-S(huruf besar S)
  • masukkan installsizedalam dialog

Referensi:

Braiam
sumber
Tidak yakin apakah ada cara untuk melakukannya, tapi alangkah baiknya untuk selalu mencetak ukuran dalam kB, yang akan membuatnya lebih mudah untuk menyortir atau memposting proses.
derobert
@derobert sedang mencari bagaimana saya bisa mengontrol ruang putih di output dari aptitude, juga, tampaknya tidak ada cara untuk mengubah output dari ukuran.
Braiam
@Braiam ya, berapa total ruang yang diperoleh jika saya menghapus *texlive*?
terdon
@terdon mm ... tidak aptitude -s remove '?and(texlive,~i)'akan cukup? Anda juga dapat menambahkan tag pengguna ke paket tertentu sehingga Anda dapat memanipulasinya secara keseluruhan (seperti tugas).
Braiam
9

Jika Anda tidak ingin menginstal wajig. Saya membayangkan setiap orang memasang debian-goodies:

dpigs              - Show which installed packages occupy the most space
dfc
sumber
wajig membutuhkan python 3 yang merupakan 40MB lainnya. debian-goodies membutuhkan python 2.6+ begitu juga 700kb tambahan. Ini atau jawaban JosephH adalah yang terbaik!
Tim O'Brien
Saya perhatikan bahwa dpigssebenarnya memiliki hasil yang sama dengan dpkg-query -Wf '${Installed-Size}\t${Package}\n' | sort -nr | head, yang merupakan sepuluh paket terinstal yang menempati ruang paling banyak. Tetap saja dpigssederhana dan pendek.
clearkimura
8

Pertama-tama, gunakan alat seperti baobab( sudo apt-get install baobab) untuk menunjukkan kepada Anda di mana ruang itu digunakan:

masukkan deskripsi gambar di sini

Itu akan memberi Anda gambaran grafis yang bagus dan membantu Anda mempersempit apa yang menghabiskan ruang Anda. Anda juga bisa mendapatkan informasi ini di baris perintah menggunakan du:

$ sudo du -ch /

Lewati ini sort(dengan asumsi GNU sort, yang seharusnya menjadi kasus di Debian) untuk mengurutkan berdasarkan ukuran direktori:

$ sudo du -ch / | sort -h

Sebagai langkah selanjutnya, Anda bisa melihat seberapa banyak ruang yang digunakan paket tertentu dengan perintah ini:

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

Di sistem saya, misalnya, menghapus semua texlivepaket akan membebaskan 1.502 MB:

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

Akhirnya, Anda bisa mendapatkan informasi ini untuk semua paket yang diinstal dengan perintah ini:

$ 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
terdon
sumber
3

Anda dapat menggunakan paket wajig , dan perintah

wajig large

Bantuan menjelaskan apa yang dilakukannya.

wajig large -h

usage: wajig large [-h]

List size of all large (>10MB) installed packages

Lihat juga halaman proyek .

Faheem Mitha
sumber
3

untuk menambah jawaban lain, jika Anda suka baris perintah Anda dapat menggunakan yang lama 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

Anda mungkin dapat membebaskan ruang menggunakan 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

Terakhir, Anda mungkin dapat menyingkirkan ikon dan font yang terkadang dapat menghabiskan banyak ruang. Lihat detail di situs web ini

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

(contoh diambil dari ownyourbits)

nachoparker
sumber
dpkg-reconfigure localepurgemengeluh tentang localepurgepaket yang tidak tersedia.
Rolf
2

Menambahkan beberapa alat lagi ke daftar, saya selalu menggunakan debfosterdan deborphandi sistem saya. Mereka paling berguna untuk berburu dependensi lama yang berkeliaran setelah peningkatan.

apt-get autoremovehebat, tetapi tidak mendapatkan segalanya dan karena mengikuti tanda instalasi, tidak selalu tahu apa yang ingin Anda simpan. Penggunaan apt-markmemungkinkan Anda mengarahkannya sampai batas tertentu.

Periksa juga: https://wiki.debian.org/ReduceDebian

XTL
sumber
0

Meskipun ini adalah kumpulan alat yang bagus, yang saya tambahkan pada KDE / QT Filelight, yang mirip dengan alat penggunaan ruang disk gui lainnya, ini bukan jawaban literal untuk judul topik.

Jika Anda mengambil pertanyaan dari utas ini secara harfiah, yaitu, apa paket terbesar di sistem Anda, sebagai aturan, mereka adalah:

Paket libreoffice dari paket, yang bukan paket tunggal, tetapi sangat besar.

Kernel linux dan paket header terkait datang saya pikir kedua, dan jika Anda memiliki beberapa kernel diinstal, yang cenderung dimiliki sebagian besar sistem, masing-masing ada di sekitar saya pikir ruang disk 135 mB, kira-kira, semakin besar setiap tahun, tetapi ini tentang itu besar . Jika Anda menggunakan driver video tidak gratis, akan ada paket / file driver terkait juga. Perhatikan bahwa seperti halnya libreoffice, setiap kernel sebenarnya dapat terdiri dari 2 atau 3 paket, paket gambar, header, dan driver, sehingga jumlah literal per paket ukuran sebenarnya tidak seakurat itu kecuali untuk mendapatkan pengertian kasar.

Setelah itu, tidak ada banyak paket besar di kumpulan paket Debian yang saya ketahui.

Saya menemukan bahwa begitu partisi root mulai menjadi cukup besar ke tempat Anda mulai bertanya-tanya bagaimana cara menyingkirkan paket untuk menyusut, umumnya saatnya untuk memindahkan / mengubah ukuran ke partisi root yang lebih besar.

apt-get clean tentu saja adalah hal pertama yang harus dijalankan, untuk menyingkirkan semua file .deb yang di-cache, tetapi begitu Anda menghapusnya, dan semuanya mengatakan 2 kernel, jika Anda masih terjebak dengan ruang yang tidak cukup, itu lebih praktis untuk meningkatkan ukuran partisi karena cleanups dll hanyalah bendera merah yang Anda jalankan hampir keluar dari ruang partisi root, yang dapat menjadi masalah nyata jika apt tidak memiliki cukup ruang di / var untuk benar-benar mengunduh dan mengekstrak paket untuk meningkatkan. Membersihkan dengan membersihkan tindakan sisa file konfigurasi dari paket yang dihapus tidak akan ada gunanya sama sekali dalam hal mendapatkan kembali ruang disk karena mereka kecil, tapi itu bagus untuk dilakukan sekarang dan kemudian hanya untuk membersihkan cruft, tetapi seharusnya tidak t keliru untuk benar-benar mendapatkan kembali ruang disk yang berarti.

apt-get auto-remove juga tidak buruk, tetapi perlu diketahui bahwa kadang-kadang ada yang salah tentang paket yang dihapus, jadi Anda ingin memeriksa daftar itu dengan cermat sebelum Anda membiarkannya menghapusnya. Secara teknis lebih baik untuk membersihkan daftar itu, dengan cara itu Anda menyingkirkan file konfigurasi juga pada saat yang sama, hapus atau hapus otomatis akan saya percaya meninggalkan mereka di tempat.

Lizardx
sumber