ใช้การค้นหา apt-cache


11

ฉันกำลังเรียนรู้วิธีใช้ apt เมื่อฉันทำapt-cache search git เพื่อดูแพ็คเกจทั้งหมดที่ตรงกับคอมไพล์ฉันเห็นกลุ่มของแพคเกจที่คำอธิบายไม่เกี่ยวข้องกับ git เหตุใดจึงเป็นเช่นนี้และฉันจะแก้ไขได้อย่างไร (Ubuntu 12.04.2 LTS)

นอกจากนี้เหตุใดฟังก์ชันการค้นหาจึงพบในคำสั่งที่มี "แคช" ในชื่อ ฟังก์ชันการค้นหาเกี่ยวข้องกับแคชอย่างไร

ขอบคุณ

คำตอบ:


13

หากคุณต้องการค้นหาเฉพาะชื่อให้ใช้--names-onlyอาร์กิวเมนต์ สำหรับข้อมูลเพิ่มเติมอ่านman apt-cacheมันจะเป็นประโยชน์


6

เมื่อคุณทำapt-cache search <package name>คำสั่งคุณกำลังทำแบบสอบถามกับข้อมูลที่เก็บไว้ในเครื่องท้องถิ่นของคุณสำหรับแพคเกจที่มีอยู่ นี่คือแคชจากที่เก็บ "สมัครสมาชิก" ของคุณ นั่นคือคำสั่งดำเนินการค้นหากับที่เก็บที่คุณตั้งค่าใน USC (ศูนย์ซอฟต์แวร์ Ubuntu) หรือ Synaptic

ตามapt-cacheหน้า man /etc/apt/sources.listเป็นที่ตั้งเพื่อดึงข้อมูลจากในแบบสอบถาม มีสถานที่เพิ่มเติมสองสามแห่งสำหรับข้อมูลแพ็คเกจประเภทอื่น ดูman apt-cacheรายละเอียดเพิ่มเติมได้ที่

โดยพื้นฐานแล้วการรันapt-cache search gitจะส่งคืนอินสแตนซ์ทั้งหมดของแพ็คเกจที่มีอยู่ซึ่งมีลำดับคำว่า "git" ในชื่อแพ็คเกจเช่นเดียวกับในคำอธิบายแพ็คเกจ

ตัวอย่างเช่นนี่หมายความว่าแพคเกจใด ๆ ที่อาจมีลำดับคำว่า "git" อยู่ในนั้นเช่นคำว่า "di git al" ในคำอธิบายจะถูกส่งกลับเป็นผลลัพธ์ โปรดสังเกตตัวหนาในประโยคก่อนหน้า

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

ตัวอย่างเช่น:

sudo apt-cache search ^git$

จะแสดงผลลัพธ์ที่มีเฉพาะวลี "git" อย่างชัดเจนในชื่อแพ็คเกจ

ตัวอย่างเช่น:

sudo apt-cache search ^git$
git - fast, scalable, distributed revision control system

คำสั่ง: sudo apt-cache search ^git

จะส่งคืนผลลัพธ์สำหรับแพ็คเกจที่เริ่มต้นด้วยวลี "git":

ตัวอย่างเช่น:

sudo apt-cache search ^git
git - fast, scalable, distributed revision control system
git-core - fast, scalable, distributed revision control system (obsolete)
git-doc - fast, scalable, distributed revision control system (documentation)
git-man - fast, scalable, distributed revision control system (manual pages)
gitk - fast, scalable, distributed revision control system (revision tree visualizer)
easygit - git for mere mortals
gforge-plugin-scmgit - Git plugin for FusionForge (transitional package)
git-all - fast, scalable, distributed revision control system (all subpackages)
git-annex - manage files with git, without checking their contents into git
git-arch - fast, scalable, distributed revision control system (arch interoperability)
...

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


" apt-cache search ^git$จะส่งคืนผลลัพธ์ที่มี" git "ในชื่อแพ็คเกจเท่านั้น" ฉันไม่เข้าใจในเรื่องนี้เพราะยกตัวอย่างเช่นgit-man(จากการส่งออกที่สองที่คุณโพสต์) gitนอกจากนี้ยังมี คุณช่วยอธิบายเครื่องหมายรูปหมวกและสัญลักษณ์ $ ได้อย่างไร? ฉันรู้ว่าเครื่องหมายรูปหมวกหมายถึง "เริ่มต้นด้วย" แต่แล้วขัดแย้งกับผลลัพธ์ที่สองที่คุณโพสต์ (ผลลัพธ์ของ^git) เพราะมันกลับมาeasygit=)
Alaa Ali

โอ้ ^แพคเกจวิธีการและรายละเอียดgitที่เริ่มต้นด้วย ตกลงเอาท์พุทที่สองเป็นที่เข้าใจกัน แล้ว^git$ผลตอบแทนคืออะไร? แพ็คเกจที่เริ่มต้นด้วยgitและ ... ?
Alaa Ali

@Alaa ลองนึกถึงอักขระ "^" และ "$" เป็นตัวยึดข้อความค้นหาของคุณ apt-cache search ^git$จะกลับมาโดยเฉพาะแพ็คเกจ git apt-cache search ^gitจะส่งคืนแพ็คเกจที่ขึ้นต้นด้วยวลี "git" และจะเจาะจงน้อยกว่า
Kevin Bowen

สามารถได้รับผลการค้นหาทั่วไปมากขึ้นโดยใช้การค้นหา apt-cache การค้นหา ^ git? `
เควิน Bowen

เพื่อให้ได้เอาต์พุตที่มีสีสันมากขึ้นเราสามารถปรับปรุงคำสั่งของคุณด้วยapt-cache search ^git | grep --color git
georg

0

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

ค้นหา,

sudo aptitude search $keyword

คำสั่งอื่น ๆ

sudo aptitude install
sudo aptitude update
sudo aptitude upgrade

เพื่อติดตั้งความถนัด

sudo apt-get install aptitude

โปรดทราบว่าความถนัดอาจยังคงมีปัญหาในระบบหลายระบบ - ดังนั้นจึงเป็นเรื่องปกติที่จะใช้แบบสอบถามหรือการค้นหา แต่ไม่เหมาะสำหรับการติดตั้ง / ลบแพ็คเกจ
guntbert

help.ubuntu.com/community/MultiArchอธิบายถึงความสามารถในการใช้ความถนัดสำหรับผู้มีปัญหาหลายฝ่าย
llt

หน้านั้นกล่าวถึงเท่านั้นaptitude why- อย่างที่ฉันบอกว่า "ใช้เพื่อการสืบค้น" - หน้านั้นค่อนข้างเก่าเกินไป (แก้ไข 2012-02-08) - ดังนั้นคำเตือนของฉันจึงยังคงมีอยู่
guntbert

ฉันเห็น. ฉันเป็นผู้ใช้ที่ถนัดดังนั้นคุณสามารถชี้ให้ฉันไปที่บทความที่ระบุว่าเป็นปัญหาเกี่ยวกับระบบ multiarch ได้หรือไม่? ฉันอาจต้องเปลี่ยนกลับเป็น apt-get แล้ว
llt

bugs.launchpad.net/ubuntu/+source/aptitude/+bug/831768ดูเหมือนว่าจะได้รับการแก้ไขเร็ว ๆ นี้ ฉันยังคงระแวดระวัง Debian แนะนำ apt-get เหมือนกัน (docs
wheezy

0

ติดตั้ง apt-xapian-index และใช้การค้นหา axi-cache เมื่อทำการค้นหาแทนที่จะใช้ apt - cache คุณจะได้รับผลลัพธ์ที่ดีกว่ามาก

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