ฉันจะแสดงรายการแพ็กเกจที่ติดตั้งทั้งหมดด้วยหมายเลขเวอร์ชั่นที่ระบุได้อย่างไร


27

ฉันต้องการแสดงรายการแพ็คเกจทั้งหมดที่ติดตั้งพร้อมหมายเลขรุ่นเฉพาะในระบบของฉัน ฉันเช็คเอาต์dpkg --get-selections( จะแสดงรายการแพ็คเกจที่ติดตั้งทั้งหมด ) แต่ไม่แสดงสิ่งที่ฉันต้องการ ตัวอย่างเช่น:

$ dpkg --get-selections apache2
apache2                                         install

แสดงให้เห็นว่ามีการติดตั้ง apache2 แต่ไม่ใช่เวอร์ชัน ฉันเพิ่งทำapt-get upgradeดังนั้น apache2.2.22-1 ควรติดตั้งเวอร์ชัน ( http://packages.ubuntu.com/precise-updates/apache2.2-common ) แต่ฉันจะแสดงสิ่งนั้นได้อย่างไร

ขอบคุณ!

คำตอบ:


35

ใช้dpkg -lแทน

ตัวอย่าง:

dpkg -l | grep '^ii' | grep skype

ผลลัพธ์นี้:

alaa @ aa-lu: ~ $ dpkg -l | grep '^ ii' | grep skype
ii skype 4.2.0.11-0ubuntu0.12.04.2 ลูกค้า i386 สำหรับ Skype VOIP ...

หากคุณต้องการแยกชื่อและรุ่นคุณสามารถทำได้:

dpkg -l | grep '^ii' | grep skype | awk '{print $2 "\t" $3}'

ซึ่งจะพิมพ์คอลัมน์ที่สองและสามจากเอาต์พุตด้านบนเช่นนี้

alaa @ aa-lu: ~ $ dpkg -l | grep '^ ii' | grep skype awk '{พิมพ์ $ 2 "\ t" $ 3}'
skype 4.2.0.11-0ubuntu0.12.04.2

แน่นอนถ้าคุณต้องการแสดงรายการแพ็คเกจทั้งหมดที่ติดตั้งด้วยรุ่นไม่เพียง แต่ Skype เท่านั้นให้ลบgrep skypeส่วนที่จะทำให้คำสั่งเป็นดังนี้:

dpkg -l | grep '^ii' | awk '{print $2 "\t" $3}'

ฉันสังเกตเห็น dpkg -l ที่ตัดทอนหมายเลขเวอร์ชันถ้ามันยาวเกิน 21 ตัวอักษรและเช่นเดียวกับแพ็คเกจทั้งหมดนั้นมีความยาว 22 ตัวอักษร :(
ThorSummoner

12

ใช้

dpkg-query --show apache2

เพื่อรับหมายเลขรุ่นสำหรับแพ็คเกจapache2และ

dpkg-query --show 

เพื่อรับหมายเลขรุ่นสำหรับแพ็คเกจที่ติดตั้งทั้งหมด


1
วิธีการแก้ปัญหาของคุณให้ฉัน ~ dpkg -l | grep '^ii' | awk '{print $2 "\t" $3}'แพคเกจมากกว่า คุณรู้หรือไม่ว่าความแตกต่างคืออะไร?
โทมัสเซ่น

3
@Thomas Jensen: ขอบคุณที่จำสิ่งนี้ dpkg-query --showจริงไม่แสดงการติดตั้งแพคเกจ แต่ไม่ได้ติดตั้งคน นั่นคือมันจะแสดงเช่นแพ็คเกจที่ติดตั้งครึ่งหนึ่งหรือแพ็คเกจที่มีไฟล์กำหนดค่าที่เหลือเช่นกัน
Florian Diesch
โดยการใช้ไซต์ของเรา หมายความว่าคุณได้อ่านและทำความเข้าใจนโยบายคุกกี้และนโยบายความเป็นส่วนตัวของเราแล้ว
Licensed under cc by-sa 3.0 with attribution required.