จะกำหนดขนาดของแพ็คเกจในขณะที่ใช้ apt ก่อนทำการดาวน์โหลดได้อย่างไร?


29

เมื่อใช้apt-get install <package_name>งานและมีการขึ้นต่อกันที่จำเป็นต้องดาวน์โหลดเทอร์มินัลจะแสดงชื่อของแพ็คเกจเพิ่มเติมและขนาดโดยรวมและขอการยืนยันก่อนดาวน์โหลด

แต่เมื่อความพึงพอใจต่อการพึ่งพาและไม่มีอะไรนอกจากแพคเกจที่มีชื่อจะต้องดาวน์โหลดไม่มีขนาดเอาต์พุตและไม่มีการยืนยัน

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

ฉันต้องการทราบว่ามีวิธีการดูขนาดของแพคเกจ (s) ใน terminal และ Synaptic ก่อนที่จะทำการดาวน์โหลดและติดตั้งหรือไม่?

คำตอบ:


27

ในเทอร์มินัลสำหรับแพ็คเกจเดียว:

apt-cache --no-all-versions show $package | grep '^Size: '

สำหรับมากกว่าหนึ่งแพคเกจ:

apt-cache --no-all-versions show $packages | 
    awk '$1 == "Package:" { p = $2 }
         $1 == "Size:"    { printf("%10d %s\n", $2, p) }'

ฉันไม่มีความคิดเกี่ยวกับ Synaptic


UNIT คืออะไร
tatsu

ฉันเดาว่าSizeเป็นไบต์และInstalled-Sizeเป็น KiB แต่ฉันไม่รู้ว่านี่ถูกกำหนดไว้ที่ใดหรือไม่ เช่นรุ่น Firefox:apt-cache show firefox | grep -E "Package:|Version:|Size:"
Mikko Rantalainen

ตั้งใจ CLI aptของมนุษย์ในปัจจุบัน ตัวอย่างเช่นapt show firefox | grep Size
Mikko Rantalainen

พบเอกสาร: apt-cache showจะปล่อยค่าที่แท้จริงที่ระบุในไฟล์debian/controlเอกสารของInstalled-Sizeสามารถพบได้ที่นี่: debian.org/doc/debian-policy/ …
Mikko Rantalainen

11

apt-cache show <package>หรือaptitude show <package>จะแสดงข้อมูลเพิ่มเติมเกี่ยวกับแพคเกจรวมถึงขนาดของมัน

สำหรับขนาดแพ็คเกจเท่านั้นคุณสามารถใช้:

apt-cache show <package> | grep Installed-Size

หรือ

aptitude show <package> | grep 'Uncompressed Size'

สำหรับ.debแพ็คเกจที่คุณสามารถใช้:

dpkg-deb -I <package>.deb | grep Installed-Size

1
มันจะแสดงขนาดของการพึ่งพาหรือไม่
Tachyons

@Tachyons คำถามคือ: " มีวิธีใดที่ฉันจะได้รับขนาดของแพคเกจ? " หากคุณสนใจขนาดของการพึ่งพาคุณสามารถใช้ปุ่มถามคำถามเพื่อถามคำถามอื่น
Radu Rădeanu

1
แต่การรวมขนาดของ dep สามารถทำให้คำตอบของคุณมีประสิทธิภาพ เพียงแค่ข้อเสนอแนะเพื่อนของฉัน :)
rɑːdʒɑ

1
@Jaidpkg-deb -I <package>.deb | grep Installed-Size
Radu Rădeanu

3
สำหรับฉันมันส่งกลับ 68 ... MB GB? ช้อน?
puk

5

คุณสามารถใช้โหมด "เรียกใช้แห้ง" ซึ่งเพิ่งแกล้งดาวน์โหลดและติดตั้งแพคเกจ

$ aptitude install -sy xlockmore
The following NEW packages will be installed:
  xlockmore 
0 packages upgraded, 1 newly installed, 0 to remove and 27 not upgraded.
Need to get 194 kB of archives. After unpacking 373 kB will be used.
Would download/install/remove packages.

พยายาม แต่ฉันไม่เห็นขนาด บรรทัด: ต้องได้รับ x ไฟล์เก็บถาวร หลังจากเปิด x จะถูกนำมาใช้ ไม่แสดง

1
ขออภัยนี่ไม่เหมาะกับความถนัด (ฉันมีนามแฝงของเชลล์สำหรับสิ่งนั้น) Updated โซลูชันนี้มีข้อดีในการแสดงสิ่งที่คุณต้องการดาวน์โหลดจริงๆ (ไม่นับการขึ้นต่อที่ติดตั้งไว้แล้ว)
Adam Byrtek

5

สิ่งนี้ยังถูกต้อง แต่ขนาดจะแสดงเป็นไบต์ และนี่จะแสดงขนาดในรูปแบบที่ดีขึ้น แต่ถ้าแพ็กเกจมีขนาดเล็กมาก (พูดว่า <1MB) จากนั้นทั้งๆที่echo 'n'มันจะติดตั้งแพคเกจ

ดังนั้นคุณใช้--no-downloadกับ--assume-noดังนี้:

sudo apt-get --no-download --assume-no install <package_name> | grep 'Need to get'

นี่คือ--no-downloadเหตุผลที่จะไม่ดาวน์โหลดแพคเกจและ--assume-noจะถือว่าไม่มี ( n) ในกรณีที่มีข้อความแจ้งใด ๆ

ตัวอย่าง:

$ sudo apt-get --no-download --assume-no install ttf-devanagari-fonts 2>/dev/null | grep 'Need to get'
Need to get 938 kB of archives.

คำตอบนี้ดีมากเพราะมันรวมถึงการพึ่งพา เพื่อแสดงพื้นที่เก็บข้อมูล 'ของจริง' ที่จะใช้หมด grep สำหรับ 'พื้นที่ดิสก์เพิ่มเติม'
Panki

0

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

echo 'n' | sudo apt-get install package | awk '/^Need to get/ {print $4,$5}'

คำตอบ @enzotib เป็นสิ่งที่ดี แต่มันแสดงขนาดของไฟล์เก็บถาวรที่จำเป็นต้องดาวน์โหลดในรูปแบบอื่นที่ไม่ใช่ของ mb แต่คำสั่งนี้จะแสดงขนาดเป็น Mb ของ

ตัวอย่าง:

$ apt-cache --no-all-versions show chromium-browser | grep '^Size: '
Size: 41493718

$ echo 'n' | sudo apt-get install chromium-browser | awk '/^Need to get/ {print $4,$5}'
44.4 MB

echo 'n' | sudo apt-get install <package>ยังคงมีการติดตั้งแพ็คเกจดาวถ้ามันมีขนาดที่เล็กมาก
Pandya
โดยการใช้ไซต์ของเรา หมายความว่าคุณได้อ่านและทำความเข้าใจนโยบายคุกกี้และนโยบายความเป็นส่วนตัวของเราแล้ว
Licensed under cc by-sa 3.0 with attribution required.