ฉันจะแสดงรายการซอฟต์แวร์ที่ติดตั้งพร้อมขนาดที่ติดตั้งได้อย่างไร


38

ฉันต้องการมีรายการซอฟต์แวร์ที่ติดตั้งไว้ในเครื่องของฉันโดยมีพื้นที่ดิสก์เหลืออยู่ข้างๆ ฉันต้องการที่จะสามารถสั่งซื้อที่ใหญ่ที่สุด / เล็กที่สุด แต่นั่นไม่จำเป็น

ฉันเป็นคนประเภทหนึ่งที่จะติดตั้งซอฟต์แวร์เพื่อทดลองใช้และไม่เคยทำความสะอาดตัวเองเลย

เป็นผลให้ฉัน 7GB (Windows และข้อมูลของฉันอยู่ในพาร์ทิชันแยกต่างหากเช่นเดียวกับพื้นที่แลกเปลี่ยน) พาร์ทิชัน Ubuntu 11.04 เป็นทุกข์และได้เริ่มแสดงข้อความเตือนเป็นประจำ


คำตอบ:


23

คุณสามารถทำเช่นนี้กราฟิกในSynaptic ติดตั้ง synaptic

ก่อนอื่นตรวจสอบให้แน่ใจว่าคุณเปิดใช้งานคอลัมน์ขนาดที่ติดตั้งและขนาดดาวน์โหลด (หรือเฉพาะคอลัมน์เดียวหากคุณต้องการคอลัมน์นั้น)

  • หากต้องการทำสิ่งนี้ให้ไปที่การตั้งค่า> การตั้งค่าและเลือกคอลัมน์และแบบอักษรจากนั้นทำเครื่องหมายในคอลัมน์ที่คุณต้องการดู
  • จากนั้นคลิกตกลง

หน้าต่างการตั้งค่า

  • เมื่อเปิดใช้งานแล้วคุณสามารถแสดงรายการแพ็คเกจที่คุณติดตั้งโดยขนาดการดาวน์โหลด / ติดตั้งโดยคลิกที่คอลัมน์

คอลัมน์

  • โปรดทราบ:ฉันไม่ได้มีแพคเกจของฉันอยู่ในลักษณะที่ภาพหน้าจอนี้ แต่มันใช้งานได้

นี่คือสิ่งที่ฉันกำลังมองหา! ขอบคุณมาก.
Lewis Goddard

@LewisGoddard: ยินดีต้อนรับ
RolandiXor

24
dpkg-query -W -f='${Installed-Size;8}  ${Package}\n' | sort -n

แสดงรายการแพ็กเกจที่เรียงตามขนาด


3
จะดีกว่าถ้าคุณสามารถพูดถึงหน่วยของขนาดเกินไป
jobin

อาจเป็นกิโลไบต์
Andreas Hartmann

1
สิ่งที่อยู่;8ใน${Installed-Size;8}?
n611x007

1
@naxa: พิมพ์ขวาจัดชิดกับความกว้างของฟิลด์ที่ 8
Florian Diesch

18

ทางออกที่ต้องการ

ฉันพบคำตอบที่สั้นกว่าไม่ต้องการaptitude:

dpkg-query -Wf '${Installed-size}\t${Package}\n' | column -t

โซลูชันเก่าที่เสนอ

showคำสั่งของaptitudeสามารถแสดงขนาดติดตั้งแพคเกจ

ฉันมีสคริปต์เล็ก ๆ นี้ที่ใช้aptitude(เพื่อติดตั้งแยกต่างหาก) เพื่อมีรายการของแพ็คเกจที่ติดตั้งทั้งหมดที่มีขนาด:

#!/bin/bash

export LC_ALL=C

aptitude show $(dpkg-query -Wf '${Package}\n') |
  awk '$1 == "Package:"     { name = $2 }
       $1 == "Uncompressed" { printf("%10s %s\n", $3, name) }' |
  awk '$1 ~ /k/ { $1 *= 1 }; $1 ~ /M/ { $1 *= 1024 }
       { printf("%9d %s\n", $1, $2)}'

aptitude show pkgขนาดจะแสดงในกิโลไบต์และมีประมาณที่ส่งกลับโดย

สคริปต์สามารถปรับปรุงได้โดยใช้การawkเรียกใช้ครั้งเดียว(แต่ฉันขี้เกียจ :-)


1
คุณอาจต้องการที่จะโยนไปป์sort -nk1ในตอนท้ายของคำสั่งแรกที่
Marco Ceppi

@MarcoCeppi: ใช่มันไม่ใช่ความกังวลหลักของ OP และฉันมักจะออกจากการสั่งซื้อจากสคริปต์ของฉันเพราะมันอาจถูกนำไปใช้ในรูปแบบที่แตกต่างกันตามความจำเป็น
enzotib

1
นอกจากนี้ยังแสดงรายการซอฟต์แวร์ที่ไม่ได้ติดตั้งอีกต่อไป มีวิธีลบสิ่งเหล่านี้จากผลลัพธ์หรือไม่
rumpel

คุณต้องการผลรวมของไพพ์แพ็คเกจเหล่านี้ที่คำสั่งแรกใช้cut -f 1 | paste -sd+ | bcหรือไม่ อาจเป็นไปได้ที่จะ grep ก่อนcutเพื่อให้คุณสามารถรับขนาดที่ติดตั้งของแพคเกจเฉพาะเท่านั้น
MeanEYE

5

ตัวเลือกอื่นคือการใช้dpigsแอปพลิเคชันจากdebian-goodiesแพ็คเกจ:

NAME
   dpigs - Show which installed packages occupy the most space

SYNOPSIS
   dpigs [options]

DESCRIPTION
   dpigs sorts the installed packages by size and outputs the largest ones. Per
   default dpigs displays the largest 10 packages. You can change this value by
   using the -n option (see "OPTIONS"). The information is taken from the dpkg
   status file with grep-status(1).

OPTIONS
   -h, --help
       Display some usage information and exit.

   -n, --lines=N
       Display the N largest packages on the system (default 10).

   -s, --status=FILE
       Use FILE instead of the default dpkg status file (which is /var/lib/dpkg/status
       currently).

   -S, --source
       Display the largest source packages of binary packages installed on the system.

3

คุณสามารถดูรายการดังกล่าวได้ในความถนัดผู้จัดการแพกเกจที่ใช้:

  1. sudo aptitudeเปิดความถนัดด้วย
  2. กดS(ตัวอักษร S) และพิมพ์~installsizeที่พรอมต์ ( ~สำหรับเรียงจากมากไปน้อย; คุณสามารถละเว้นได้หากคุณต้องการแพ็คเกจที่เล็กที่สุดอยู่ด้านบน)
  3. ถึงตอนนี้แพ็คเกจจะถูกจัดเรียงตามขนาดภายในแต่ละระดับชั้น หากต้องการดูภาพรวมคุณจะต้องได้ระดับน้อยที่สุด กดGและป้อนstatusที่พรอมต์ ขณะนี้แพคเกจที่ติดตั้งทั้งหมดอยู่ในส่วนเดียวเรียงตามขนาด

1

คำตอบอื่น ๆ ที่นี่แสดงรายการแพคเกจที่ติดตั้งและไม่ได้ติดตั้ง

รายการต่อไปนี้เป็นรายการที่ติดตั้งอยู่ในปัจจุบันเท่านั้น:

dpkg-query -W -f='${Installed-Size;8}\t${Status;1}\t${Package}\n' | grep -v "\sd\s" | sort -n | cut -f1,3-

มันทำอะไร:

  1. สอบถามขนาดสถานะและชื่อของแพ็คเกจทั้งหมดที่ติดตั้ง
  2. กรองแพ็กเกจที่ไม่ได้ติดตั้ง
  3. ตัดคอลัมน์สถานะออกจากผลลัพธ์

คล้ายกับเอาท์พุท:

...
22376   vim-runtime
26818   linux-image-3.8.0-32-generic
28673   libc6-dbg
35303   libpython3.3-dev
40303   valgrind
40731   linux-firmware
41516   smbclient
58704   linux-headers-3.8.0-26
58733   linux-headers-3.8.0-32
93566   linux-image-extra-3.8.0-32-generic
โดยการใช้ไซต์ของเรา หมายความว่าคุณได้อ่านและทำความเข้าใจนโยบายคุกกี้และนโยบายความเป็นส่วนตัวของเราแล้ว
Licensed under cc by-sa 3.0 with attribution required.