แสดงรายการแพ็คเกจทั้งหมด


17

มีคำสั่งนี้เทียบเท่า yum list kernel-headers --showduplicatesบน Ubuntu ด้วยapt-get, apt-cacheเป็นต้นคำสั่งข้างต้นแสดงรายการรุ่นต่างๆของเคอร์เนลส่วนหัว rpm ที่มีอยู่ใน F20 / RHEL หรือการติดตั้ง

ตู้เสื้อผ้าที่ฉันสามารถใช้apt-cache showpkgงานได้ไม่แน่ใจว่ามีวิธีที่ดีกว่านี้ไหม?

$ apt-cache showpkg linux-image  
Package: linux-image  
Versions:   

Reverse Depends:  
  firmware-crystalhd,linux-image  
  systemtap,linux-image  
  fiaif,linux-image  
Dependencies:  
Provides:  
Reverse Provides:  
linux-image-3.13.0-27-lowlatency 3.13.0-27.50  
linux-image-3.13.0-27-generic 3.13.0-27.50  
linux-image-3.13.0-24-lowlatency 3.13.0-24.47  
linux-image-3.13.0-24-generic 3.13.0-24.47  
linux-image-3.13.0-24-lowlatency 3.13.0-24.46  
linux-image-3.13.0-24-generic 3.13.0-24.46  

ต้องการผลลัพธ์ที่คล้ายกัน:

$ yum list kernel-headers --showduplicates
Loaded plugins: langpacks, refresh-packagekit
Installed Packages
kernel-headers.x86_64 3.11.10-301.fc20 @fedora
Available Packages
kernel-headers.x86_64 3.11.10-301.fc20 fedora 
kernel-headers.x86_64 3.14.4-200.fc20 updates

สิ่งนี้จะช่วยฉันในการดาวน์เกรดหรืออัปเกรดเป็นเวอร์ชันที่ระบุ


หมายถึงรายการรุ่นของแพ็คเกจที่ติดตั้งทั้งหมดพร้อมกับชื่อแพ็คเกจหรือไม่
Avinash Raj

ทั้งการติดตั้งและถอนการติดตั้งคล้ายกับคำสั่งดังกล่าว:
ถาม

ที่ใกล้เคียงที่สุดที่ฉันสามารถทำได้คือใช้dpkg --list | grep linux-image
Askb

dpkg --listแสดงรายละเอียดของแพ็คเกจที่ติดตั้งทั้งหมด
Avinash Raj

คำตอบ:


13

คุณมีคำสั่งที่ถูกต้องยกเว้น linux-image ไม่ใช่ชื่อแพ็คเกจจริง

$ apt-cache show linux-image
N: Can't select versions from package 'linux-image' as it is purely virtual
N: No package found

apt-cache showpkgควรใช้งานได้กับแพ็คเกจจริง เช่น

$ apt-cache showpkg lyx
Package: lyx
Versions: 
2.1.0-1~trusty~ppa4 (/var/lib/apt/lists/ppa.launchpad.net_lyx-devel_release_ubuntu_dists_trusty_main_binary-amd64_Packages) (/var/lib/dpkg/status)
 Description Language: 
                 File: /var/lib/apt/lists/ppa.launchpad.net_lyx-devel_release_ubuntu_dists_trusty_main_binary-amd64_Packages
                  MD5: 8c75d53cfd29c5b19c2172cb07b7fe9a

2.0.6-1build1 (/var/lib/apt/lists/ftp.iinet.net.au_pub_ubuntu_dists_trusty_universe_binary-amd64_Packages)

หากคุณต้องการดูlinux-imageแพ็คเกจเหมือนทุกรุ่นคุณสามารถทำการค้นหาได้เช่น

$ apt-cache search linux-image | grep '^linux-image'

ปัญหาคือเคอร์เนล ( linux-image) ที่แตกต่างกันอยู่ในแพ็คเกจแต่ละอันและตั้งชื่ออย่างอิสระตามเวอร์ชั่น ไม่ใช่แพ็คเกจเดียวทุกรุ่น


แก้ไข

รายการนี้มีแพ็คเกจทั้งหมด dpkg -lเพื่อแสดงว่ามีการติดตั้งคุณสามารถใช้ เช่น

$ dpkg -l lyx
Desired=Unknown/Install/Remove/Purge/Hold
| Status=Not/Inst/Conf-files/Unpacked/halF-conf/Half-inst/trig-aWait/Trig-pend
|/ Err?=(none)/Reinst-required (Status,Err: uppercase=bad)
||/ Name                                           Version                      Architecture                 Description
+++-==============================================-============================-============================-==================================================================================================
ii  lyx                                            2.1.0-1~trusty~ppa4          amd64                        Document Processor

EDIT2

วิธีการที่จะได้รับข้อมูลเกี่ยวกับแพคเกจที่แตกต่างกัน แต่ในทำนองเดียวกันชื่อ (เช่นอีกlinux-image*) aptitude searchคือการใช้

$ aptitude search linux-image

คุณยังสามารถกรองด้วย grep โดยใช้ไวยากรณ์ที่น่าอึดอัดใจนี้เพื่อแก้ไขข้อบกพร่อง / คุณลักษณะของความถนัด

$ aptitude -w $COLUMNS search linux-image | grep '32 bit'

iในคอลัมน์แรกจะบอกคุณว่ามีการติดตั้งแล้ว ดูman aptitudeตัวละครอื่น ๆ


ผลลัพธ์ที่ฉันได้รับจากการyumแสดงให้เห็นอย่างชัดเจนว่ามีการติดตั้งถอนการติดตั้งและพร้อมใช้งาน
Askb

ตกลง. คุณควรเพิ่มคำถามของคุณเนื่องจากผู้ใช้ Ubuntu หลายคน (รวมถึงตัวเอง) ไม่ทราบว่าyumผลิตผลอะไร ฉันได้เพิ่มข้อมูลเพิ่มเติมในคำตอบ
Sparhawk

@askb ขอบคุณสำหรับการแก้ไข ตามที่กล่าวไว้ในคำตอบของฉันฉันคิดว่าส่วนหนึ่งของปัญหาคืออูบุนตูเปลี่ยนชื่อของเคอร์เนลแต่ละตัวตามรุ่นในขณะที่ Fedora ใช้ชื่อเดียวกันโดยไม่คำนึงถึงเวอร์ชัน ข้อดีอย่างหนึ่งของอดีตคือคุณสามารถติดตั้งได้หลายรุ่นในคราวเดียวและย้อนกลับไปเป็นรุ่นเก่าที่ด้วงถ้ามีปัญหา ไม่ว่าในกรณีใดapt-cache searchกลยุทธ์ควรใช้งานได้
Sparhawk

ขอบคุณสำหรับการตอบสนองด้วยrpmการติดตั้งที่เป็นไปได้หลายรุ่นของเคอร์เนลที่ติดตั้งตราบใดที่เวอร์ชันต่างกัน แต่โดยปกติจะใช้ไม่ได้กับแพ็คเกจทั้งหมดในการติดตั้งที่ใช้รอบต่อนาทีหรือไม่ส่งต่อ AFAIK อย่างไรก็ตามฉันยังคงพยายามหาวิธีที่สะอาดซึ่งฉันได้รับรายละเอียดของ pkgs ทั้งที่ติดตั้งและใช้งานได้ (ใน repos) บน Ubuntu เท่าที่apt-cache search ความคิดดำเนินไปมันใช้ได้กับแพ็คเกจท้องถิ่นเท่านั้นและไม่ได้ดูที่ repos . ใกล้เคียงที่สุดที่ฉันสามารถทำได้คือshowpkg
Askb

@askb ไม่apt-cache searchดูใน repos ไม่ใช่ในเครื่อง AFAIK มันไม่ได้บอกอะไรคุณเกี่ยวกับแพ็คเกจที่ติดตั้งภายในเครื่อง คุณต้องการdpkgสิ่งนั้นตามการแก้ไขครั้งแรกของฉัน ฉันได้เพิ่มเข้าไปในการแก้ไขครั้งที่สองซึ่งเป็นคำสั่งเดียวที่ใช้กับเมล็ดได้
Sparhawk

8

ฉันคิดว่าคุณกำลังมองหาคำสั่งmadisonใน apt-cache:

apt-cache madison chromium-browser

เอาท์พุท:

chromium-browser | 50.0.2661.102-0ubuntu0.14.04.1.1117 | http://archive.ubuntu.com/ubuntu/ trusty-updates/universe amd64 Packages
chromium-browser | 50.0.2661.102-0ubuntu0.14.04.1.1117 | http://security.ubuntu.com/ubuntu/ trusty-security/universe amd64 Packages
chromium-browser | 34.0.1847.116-0ubuntu2 | http://archive.ubuntu.com/ubuntu/ trusty/universe amd64 Packages

แสดงการอ้างอิงอย่างรวดเร็วของเวอร์ชันที่มีทั้งหมดและ repo ที่มาจาก นี่เป็นสิ่งที่ดีถ้าคุณใช้ PPA สำหรับแพ็คเกจและต้องการตรวจสอบความแตกต่างของเวอร์ชั่นระหว่าง PPA และ repos หลัก

ข้อมูลเพิ่มเติมเกี่ยวกับ madison จากหน้า man:

madison pkg...
           apt-cache's madison command attempts to mimic the output format and a subset of the functionality of the Debian archive management tool,
           madison. It displays available versions of a package in a tabular format. Unlike the original madison, it can only display information
           for the architecture for which APT has retrieved package lists (APT::Architecture).

0

คุณสามารถใช้dpkgเพื่อดูแพ็คเกจที่ติดตั้งทั้งหมด:

$ dpkg --get-selections | grep -v deinstall | grep linux-image

ลินุกซ์เคอร์เนลเมตาแพคเกจที่เรียกว่าใน linux-image-genericDebian

$ apt-cache madison linux-image-generic

จะให้คุณทุกรุ่นที่มีอยู่ในที่เก็บ APT (ไม่จำเป็นต้องติดตั้งบนระบบของคุณ)


-1

คุณเคยลองบูทเคอร์เนลตัวเก่าแล้วหรือยัง

showpkg kernel-header.list

และฉันคิดว่ามันอาจอยู่ในไดเรกทอรีบูตและเคอร์เนลทั้งหมดวางอยู่ที่นั่นและสิ่งนี้อาจทำงานได้ดี

จากนั้นคุณสามารถพิมพ์เพื่อปรับลดรุ่นนี้ในเทอร์มินัล:

 sudo apt-get -y --force-yes purge linux-shim-efi shim-amd64-generic linux-shim-amd64 

และมันอาจทำงานได้ดีในลักษณะนี้


ฉันไม่แน่ใจว่าสิ่งนี้หมายถึงอะไร ไม่มี/dirctory, /directoryหรือในระบบของฉันและไม่มีไฟล์ที่เรียกว่า/grub kernel-headers.listนอกจากนี้การอ่านไฟล์ในเครื่องอาจไม่สามารถบอกได้ว่ามีรุ่นใดบ้างที่อยู่ในระยะไกล -1 (แต่ฉันจะเปลี่ยนกลับหากคุณสามารถอธิบายได้)
Sparhawk

ฉันอาจหมายถึงใน / boot ไดเรกทอรีที่ไฟล์ด้วงวาง
Michael

/boot/kernel-headers.listฉันมีไฟล์ที่ไม่มี อย่างไรก็ตามคุณสามารถรับรายการของเมล็ดที่ติดตั้งจาก (เช่น) /boot/grub/grub.cfgแต่อีกครั้งนี่เป็นเพียงเมล็ดที่ติดตั้งภายในเครื่องไม่ใช่รุ่นระยะไกลใน repos
Sparhawk

ฉันอาจทำไม่ได้ว่ามันเป็น. cfg / boot ส่วนขยาย
Michael

ฉันตรวจสอบไฟล์ทั้งหมดจากfind /boot -name '*.cfg'แต่ไม่มีไฟล์ใดที่มีข้อมูลเกี่ยวกับเคอร์เนลรุ่นระยะไกล
Sparhawk
โดยการใช้ไซต์ของเรา หมายความว่าคุณได้อ่านและทำความเข้าใจนโยบายคุกกี้และนโยบายความเป็นส่วนตัวของเราแล้ว
Licensed under cc by-sa 3.0 with attribution required.