ตรวจสอบเวอร์ชั่นของแพ็คเกจโดยใช้ apt-get / aptitude?


430

ก่อนที่ฉันจะติดตั้งแพคเกจฉันต้องการทราบว่าฉันจะได้รับเวอร์ชันใด ฉันจะตรวจสอบรุ่นก่อนติดตั้งโดยใช้apt-getหรือaptitudeบนเดเบียนหรืออูบุนตูได้อย่างไร

คำตอบ:


540

apt-get

คุณสามารถรันการจำลองเพื่อดูว่าจะเกิดอะไรขึ้นถ้าคุณอัพเกรด / ติดตั้งแพ็คเกจ:

apt-get -s install <package>

หากต้องการดูการอัพเกรดที่เป็นไปได้ทั้งหมดให้รันupgradeในโหมด verbose และ (เพื่อความปลอดภัย) ด้วยการจำลองให้กดnเพื่อยกเลิก:

apt-get -V -s upgrade

apt-แคช

ตัวเลือกpolicyสามารถแสดงรุ่นที่ติดตั้งและระยะไกล ( ตัวเลือกการติดตั้ง) ของแพ็คเกจ

apt-cache policy <package>

apt-แสดงรุ่น

หากติดตั้งแล้วจะแสดงข้อมูลเวอร์ชั่นเกี่ยวกับแพ็คเกจหนึ่งแพ็คเกจขึ้นไป:

apt-show-versions <package>

เมื่อผ่าน-uสวิตช์ที่มีหรือไม่มีชื่อแพ็คเกจจะแสดงเฉพาะแพ็คเกจที่อัปเกรดได้

ความถนัด

GUI ของคอนโซลaptitudeสามารถแสดงแพ็คเกจที่อัพเกรดได้ด้วยเวอร์ชันใหม่ เปิดเมนู 'แพ็คเกจที่เลื่อนขึ้นได้' การกดvบนแพ็คเกจจะแสดงข้อมูลรุ่นโดยละเอียดยิ่งขึ้น

หรือบนบรรทัดคำสั่ง:

aptitude versions <package>

การส่งผ่าน-Vจะแสดงข้อมูลโดยละเอียดเกี่ยวกับเวอร์ชันอีกครั้งเพื่อให้ปลอดภัยกับสวิตช์จำลอง:

aptitude -V -s install <package>

การแทนที่install <package>ด้วยupgradeจะแสดงเวอร์ชันจากแพ็คเกจที่อัพเกรดได้ทั้งหมด


9
"โปรแกรม 'apt-แสดงรุ่น' อยู่ในขณะนี้ไม่ได้ติดตั้งคุณสามารถติดตั้งได้โดยการพิมพ์ .."
ปีเตอร์ Ehrlich

1
apt-get -V -s upgradeทำวันของฉันขอบคุณ!
dr.dimitru

จะแนะนำให้ทำงานapt-get install -sด้วยsudoหรือไม่
edwinksl

@ edwinksl: มันทำงานได้ดีถ้าไม่มีมันดังนั้นฉันจะไม่คาดหวังว่า sudo จะดีกว่า
zondo

3
apt show <packages>นอกจากนี้ยังสามารถเพิ่มลงในรายการ
leo

59

อีกวิธีใช้dpkgและgrep :

dpkg -s <package> | grep Version

14
สิ่งนี้ไม่ทำงานเมื่อไม่ได้ติดตั้ง <package> (ซึ่งเป็นข้อกำหนดในคำถาม)
Serrano

1
Serrano Pereira คำตอบนั้นได้ช่วยฉันผู้ที่มีคำถามแตกต่างกันเล็กน้อย แต่คล้ายกันมากพอที่จะไม่หลงกลใน stackoverflow
Jose Alban

ดีกว่า: dpkg -s <package> | grep Version (สังเกตเมืองหลวง V)
langlauf.io

21

ตัวเลือกอื่นถ้าคุณไม่รู้ชื่อเต็มของแพ็คเกจกำลังจัดรูปแบบผลลัพธ์การค้นหาของความถนัด:

aptitude search <package> -F "%c %p %d %V"

%cสถานะ = (ติดตั้งแพคเกจหรือไม่)
%p= ชื่อ
%dของแพคเกจ
%V= คำอธิบายของแพคเกจ= รุ่นของแพคเกจที่มีอยู่

การอ้างอิง: http://linux.die.net/man/8/aptitude


8

ในการรับชื่อแพ็คเกจ:

apt-cache search *search term*

วิธีรับรายละเอียดเวอร์ชัน:

apt-cache show *packagename*

ฉันเชื่อapt-getและapt-cacheกำลังถูกคัดค้านด้วยaptและaptitudeกลายเป็นวิธีที่ต้องการ เมื่อพิจารณาถึงอายุของผู้ที่เหมาะสมมันอาจเป็นทางออกที่ปลอดภัยสำหรับบางเวลาที่จะมาถึง!


นั่นคือสิ่งที่ฉันกำลังมองหา ใช้ repo ระยะไกลเพื่อรับรุ่นและข้อมูลอื่น ๆ ทุกประเภท
four43

6

คุณสามารถเขียน apt show <package>


สิ่งนี้ได้กล่าวถึงแล้วในคำตอบของ Ned Flanders ', unix.stackexchange.com/a/362794/22812
Anthony Geoghegan

@yurij คุณควรจะมี wirtten คำตอบของคุณเองตามปริมาณของการแก้ไขที่คุณทำ
Kiwy

@AththonyGeoghegan คุณพูดผิดเกี่ยวกับapt-cacheฉันกำลังใช้aptอยู่มีสองสิ่งที่แตกต่างกัน ... ฉันหายไปอะไร?
elvis.dukaj

aptและapt-cacheทำสิ่งเดียวกัน หากคุณตรวจสอบซอร์สโค้ดทั้งคู่จะมีฟังก์ชั่นการทำงานที่เหมือนกันคือ for show, ฟังก์ชั่นที่เรียกใช้ShowPackageและ for search, ฟังก์ชั่นที่เรียกDoSearchใช้
Anthony Geoghegan

3
 $ rmadison gdm3
 gdm3 | 2.30.5-6squeeze2 | squeeze-security | i386
 gdm3 | 2.30.5-6squeeze5 | squeeze          | i386
 gdm3 | 3.4.1-8          | wheezy           | i386
 gdm3 | 3.14.1-7         | jessie           | i386
 gdm3 | 3.18.0-2         | stretch          | i386
 gdm3 | 3.18.0-2         | sid              | i386

จาก devscripts.deb


สำหรับอูบุนตูจะแสดงรุ่นที่พบสำหรับรุ่นอูบุนตูต่าง ๆ (ชื่อรหัสเช่น "แม่นยำ", "เชื่อถือได้" และ "xenial") ช้ามาก แต่อาจช่วยคุณในการตัดสินใจอัปเกรด LTS ของคุณ;)
Tomasz Gandor

2

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

$sudo apt-get update

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

$apt-cache show <package name>

ตัวอย่าง:

$apt-cache show latexila

หรือ

$apt-cache show npm
โดยการใช้ไซต์ของเรา หมายความว่าคุณได้อ่านและทำความเข้าใจนโยบายคุกกี้และนโยบายความเป็นส่วนตัวของเราแล้ว
Licensed under cc by-sa 3.0 with attribution required.