ฉันจะค้นหาแพ็คเกจที่มีจากบรรทัดคำสั่งได้อย่างไร


584

ฉันได้ติดตั้งแพคเกจบางอย่างสำเร็จโดยใช้บรรทัดคำสั่ง 'sudo apt-get install ... ' เมื่อฉันรู้ล่วงหน้าว่ามีแพ็คเกจเหล่านั้น แต่ฉันจะค้นหาหรือรับรายการสิ่งที่มีอยู่ในที่เก็บได้อย่างไร

คำตอบ:


728

วิธีค้นหาแพ็คเกจโดยใช้ชื่อหรือคำอธิบาย:

จากบรรทัดคำสั่งให้ใช้:

apt-cache search keyword

โดยที่คีย์เวิร์ดการค้นหาอาจเป็นชื่อแพ็กเกจทั้งหมดหรือบางส่วนหรือคำใด ๆ ที่ใช้ในคำอธิบาย

ตัวอย่างเช่นapt-cache search proxyมีทั้งแพ็คเกจเหล่านี้:

Tiny proxy - ตัวเลือก HTTP ที่มีน้ำหนักเบาและไม่แคช
tircd - ircd proxyไปที่ twitter API

หมายเหตุ: รายการอาจจะยาวเพื่อให้คุณสามารถท่อส่งออกเพื่อที่จะให้มันเลื่อนบรรทัดเดียวหรือหน้าจอในเวลาหนึ่งคือlessapt-cache search something | less

เพื่อรับรายการแพ็คเกจทั้งหมด

apt-cache search .

ใช้ Synaptic หากคุณเปิดใช้งานการส่งต่อ X หรืออยู่บนเดสก์ท็อป

Synapticมักจะเป็นวิธีที่สะดวกกว่าในการทำเช่นนี้ แต่อย่างน้อยต้องมีเซิร์ฟเวอร์ X ที่ปลายของคุณ (เว้นแต่คุณจะใช้สภาพแวดล้อมเดสก์ทอป) ติดตั้งด้วยsudo apt-get install synapticหากจำเป็น

  • Synaptic บนเซิร์ฟเวอร์ ssh'd ผ่าน X forwarding:

    ป้อนคำอธิบายรูปภาพที่นี่

  • Synaptic ทำงานแบบโลคัลบน Ubuntu Desktop:

    ป้อนคำอธิบายรูปภาพที่นี่


@MarkThomas ลองapt-cache policyด้วยเช่นกันจะให้ข้อมูลเพิ่มเติมเกี่ยวกับแหล่งที่มา
yclian

เช่นเดียวกับapt-getคุณสามารถเรียกใช้apt-cacheโดยไม่มีข้อโต้แย้งใด ๆ และรับข้อมูลช่วยเหลือ / cheatsheet สั้น ๆ คุณสามารถอ่าน manpages บนมันเพื่อขอความช่วยเหลือได้อีกต่อไป (เช่นman apt-cache)
pd12

สมมติว่าฉันโง่พอที่จะต้องการใช้ผลลัพธ์ให้apt installได้มีวิธีที่ฉลาดในการทำเช่นนั้นหรือไม่? ผลลัพธ์จากฟังก์ชั่นนี้ยุ่ง สามารถใช้คำแรกจากแต่ละบรรทัดได้ แต่ควรมีวิธีที่ง่ายกว่า
Deleet

คุณยังสามารถค้นหาออนไลน์ packages.ubuntu.com
activedecay

หากคุณต้องการชื่อของแพ็คเกจทั้งหมดที่มีให้ทำเพียงแค่apt-cache pkgnames
flaz14

42

การใช้aptitude, apt-cacheและaptรูปแบบเอาต์พุตทั้งหมดแตกต่างกัน (สิ่งเหล่านี้ไม่จำเป็นต้องใช้sudoเมื่อค้นหาแพ็คเกจ) ฉันชอบที่จะใช้aptสำหรับการอ่านแพคเกจ มันเน้นชื่อแพคเกจและทำให้ช่องว่างระหว่างแพคเกจที่แตกต่างกัน นอกจากนี้ยังมี[installed]รายชื่อติดกับแต่ละแพ็คเกจที่ติดตั้งไว้แล้ว การใช้งาน:

apt search package-name

2
ถ้าฉันเรียกว่า '$ apt search firefox' มันจะสร้างผลลัพธ์ออกมาเป็นตัน :(
user3804598

คุณสามารถ จำกัด การค้นหาของคุณให้แคบลงด้วย:apt search firefox | grep -A 3 firefox
jbrock

1
ตัวเลือกอื่นเพื่อ จำกัด การค้นหา: apt search ^firefoxหรือapt search ^firefox$
jbrock

25

คุณยังสามารถใช้ความถนัดจากบรรทัดคำสั่ง:

aptitude search xxxxxx

2
สิ่งที่น่ารำคาญเกี่ยวกับอันนี้คืออูบุนตูดูเหมือนจะไม่มอบให้คุณโดยปริยาย จนกระทั่งฉันเรียนรู้เกี่ยวกับapt-cacheฉันฉันมักจะทำเช่นนั้นapt-get install aptitudeในแต่ละกล่องใหม่ที่ฉันติดตั้ง อย่างไรก็ตามเนื่องจากฉันไม่สามารถหาวิธีที่apt-cacheจะแสดงให้ฉันเห็นว่ามีการติดตั้งหรือไม่ฉันคิดว่าฉันจะต้องทำเช่นนั้นต่อไปอีกสักพัก :-)

2
@paxdiablo เพียงแค่สร้างเชลล์สคริปต์บรรทัดที่สอง (บรรทัดที่สองที่ชอบอย่างเช่นdpkg --list | grep "$1") หรือเพิ่มฟังก์ชันเชลล์เพื่อให้เอฟเฟกต์นี้เป็นของคุณ.bash_login... :-)
FooF

5

เครื่องมือบรรทัดคำสั่ง apt-cache ใช้สำหรับค้นหาแคชแพ็คเกจซอฟต์แวร์ apt เครื่องมือนี้ใช้สำหรับค้นหาแพคเกจซอฟต์แวร์รวบรวมข้อมูลของแพ็คเกจและใช้เพื่อค้นหาว่าแพ็คเกจใดที่พร้อมใช้งานสำหรับการติดตั้งบนระบบที่ใช้ Debian หรือ Ubuntu

หากต้องการค้นหาชื่อแพ็กเกจพร้อมกับคำอธิบายก่อนทำการติดตั้งให้ใช้แฟล็ก 'ค้นหา' การใช้“ ค้นหา” กับ apt-cache จะแสดงรายการของแพ็คเกจที่ตรงกันพร้อมคำอธิบายสั้น ๆ สมมติว่าคุณต้องการค้นหาคำอธิบายของแพ็คเกจ 'vsftpd' จากนั้นคำสั่งจะเป็น

ไวยากรณ์:

apt-cache search SearchTerm
$ apt-cache search vsftpd

ผลลัพธ์ที่เป็นไปได้คือ:

vsftpd - lightweight, efficient FTP server written for security
ccze - A robust, modular log coloriser
ftpd - File Transfer Protocol (FTP) server
yasat - simple stupid audit tool

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

$ apt-cache pkgnames vsftpd

คุณอาจต้องการเรียกใช้ผลลัพธ์ผ่านมากกว่าหรือแม้แต่ grep ตัวอย่างเช่น

apt-cache search firefox | grep plugin

3

สมมติว่าคุณต้องการทำสิ่งนี้ทั้งหมดจากเครื่องเทอร์มินัลใช้สิ่งต่อไปนี้:

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

sudo apt-get update

จากนั้นใช้ฟังก์ชัน" search regex" apt-cacheโดยที่ "regex" หมายถึง Regular Expression และเป็นรูปแบบที่กำหนดให้ค้นหา สำหรับข้อมูลเพิ่มเติมเกี่ยวกับรูปแบบการค้นหาที่คุณสามารถดูคู่มือ regex (7) โดยคำสั่งman 7 regexหรือในภาษาอังกฤษ regex ตัวแปรเท่ากับ จะพอเพียง

apt-cache search .

ข้างต้นจะให้ผลลัพธ์ทั้งหมด แต่ไม่ได้อยู่ในลำดับที่เป็นประโยชน์อย่างยิ่งสำหรับการเรียกดู

ดังนั้นในที่สุดเราสามารถจัดเรียงตามคำสั่งโดยใช้พจนานุกรมและแสดงเพียงหน้าในเวลาใช้sort -dless

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