กลเม็ดการ search ใน aptitude
จำนวนแพกเกจใน Debian มีมากมายมหาศาล เวลาที่ใช้ aptitude ติดตั้งโปรแกรม สิ่งที่ต้องการมากอย่างหนึ่งจึงเป็นเรื่องการสืบค้น โดยมากแล้วเรามักจะใช้ apt-cache ค้นหาแพกเกจที่มีคำค้นอยู่ในชื่อหรือคำบรรยายแพกเกจ แต่ความจริงแล้ว aptitude เองก็สามารถสืบค้นได้ไม่แพ้ apt-cache แถมยังค้นได้ละเอียดกว่าอีกด้วย
ถ้าอยู่ในหน้าจอ fullscreen ของ aptitude ก็สามารถเริ่มค้นได้โดยกดปุ่ม '/
' ซึ่งจะปรากฎกล่องโต้ตอบขึ้นมาให้ป้อนคำค้น หรือถ้าจะค้นย้อนกลับก็ใช้ปุ่ม '\
' แทน เมื่อพบรายการแรกแล้ว จะค้นต่อไปก็กดปุ่ม 'n
'
ถ้าอยู่ที่บรรทัดคำสั่ง ก็สามารถสืบค้นได้ด้วยคำสั่ง
$ aptitude search query
โดยปกติ ถ้า query เป็นคำธรรมดา ก็จะเป็นการค้นหาแพกเกจที่มีคำที่ต้องการอยู่ในชื่อแพกเกจ (ไม่รวมคำบรรยายแพกเกจ) แต่ตรง query ที่ไม่ใช่คำธรรมดานี่แหละ คือความเก่งกาจของ aptitude
ลองดู query แบบที่เด่น ๆ ก่อน
~dข้อความ
- หาแพกเกจที่มี ข้อความ อยู่ในคำบรรยายแพกเกจ
~nข้อความ
- หาแพกเกจที่มี ข้อความ อยู่ในชื่อแพกเกจ
~mชื่อ
- หาแพกเกจที่มีผู้ดูแลเป็น ชื่อ ที่กำหนด
~b
- หาแพกเกจที่พัง (broken) อยู่ เทียบเท่ากับกด '
b
' ใน fullscreen ~Vรุ่น
- หาแพกเกจที่มี รุ่น ที่กำหนดอยู่ในเลขรุ่น
ตัวอย่างเช่น
ค้นหาแพกเกจที่มีคำว่า "youtube
" อยู่ในชื่อ:
$ aptitude search youtube p libwebservice-youtube-perl - Perl module that provides an interface to i youtube-dl - download videos from youtube.com
ค้นหาแพกเกจที่มีคำว่า "youtube
" อยู่ในคำบรรยาย:
$ aptitude search ~dyoutube i clive - Video extraction utility for YouTube, Goog p conkeror - keyboard focused web browser with Emacs lo p libgdata1.4-cil - Google GData CLI client library p libwebservice-youtube-perl - Perl module that provides an interface to p metacafe-dl - download videos from metacafe.com p monodoc-gdata-manual - compiled XML documentation for GData p nicovideo-dl - Download videos from www.nicovideo.jp i A python-gdata - Google Data Python client library i A totem-plugins - Plugins for the Totem media player i youtube-dl - download videos from youtube.com
ค้นหาแพกเกจที่ "thep
" (อีเมล) หรือ "Theppitak
" (ชื่อ) เป็นผู้ดูแล:
$ aptitude search ~mthep ... $ aptitude search ~mTheppitak ...
ระวังว่า predicate ต้องตามด้วยคำค้นทันที ไม่มีช่องว่างคั่น และ query เหล่านี้สามารถใช้ได้ทั้งในโหมด fullscreen และที่บรรทัดคำสั่ง
predicate เหล่านี้ สามารถใช้ผสมกันได้ โดยปกติแล้วจะเป็นแบบ และ (and) เช่น "~mthep ~b
" จะค้นหาแพกเกจที่ thep
เป็นผู้ดูแลและพังอยู่ แต่ถ้าต้องการเชื่อมกันแบบ หรือ (or) ก็ทำได้โดยใช้เครื่องหมาย "|
" เช่น "~mthep | ~mneutron
" เป็นการหาแพกเกจที่ดูแลโดย thep
หรือ neutron
predicate สามารถใส่วงเล็บเพื่อจัดกลุ่มได้ เช่น "~b (~mthep | ~mneutron)
" จะหาแพกเกจที่พังอยู่ ซึ่งอยู่ในความดูแลของ thep
หรือ neutron
predicate สามารถใช้รูปแบบ regular expression ประกอบได้ โดยถ้าจะใช้วงเล็บใน regular expression ก็สามารถ escape ได้โดยใส่อักขระ "~
" นำหน้าวงเล็บ เช่น "~n^~(lib~)?gtk"
จะเป็นการค้นหาแพกเกจที่ชื่อขึ้นต้นด้วย "libgtk
" หรือ "gtk
"
ยังมี predicate อื่น ๆ ที่ยังไม่ได้พูดถึงอีกเพียบ โดยดูรายการทั้งหมดได้จาก คู่มือของ aptitude
อีกสักตัวอย่างหนึ่งสำหรับคนที่ใช้ ก้านกล้วย repository ของ debianclub นี้ สามารถดูรายชื่อของแพกเกจที่มาจากก้านกล้วยได้โดยสั่ง:
$ aptitude search ~Odebclub
จะเป็นการค้นหาแพกเกจที่มี Origin มาจาก debclub
นั่นเอง คำสั่งนี้จะเป็นประโยชน์สำหรับผู้ใช้ที่ใช้หลาย repository ผสมกัน หรือใช้ระบบที่เป็น Debian-derivative เช่น Ubuntu ในการแยกแยะแหล่งที่มาของแพกเกจ
หรือจะหาว่า แพกเกจนี้มีใคร depends อยู่บ้าง:
$ aptitude search ~Dlibthai0
อีกเรื่องหนึ่งคือการค้นหาโดยอาศัยแท็ก ซึ่ง โครงการ debtags ของ Debian ได้จัดทำฐานข้อมูลแท็กสำหรับแพกเกจต่าง ๆ ไว้ คุณต้องติดตั้งแพกเกจ debtags
เสียก่อน จึงจะสืบค้นผ่าน debtags ได้ โดยอาศัย predicate "~Gtag
" เช่น
$ aptitude search ~Gweb::browser ...
เป็นการค้นหาแพกเกจทั้งหมดที่ถูกแท็กว่าเป็นเว็บเบราว์เซอร์ เป็นต้น
- thep's blog
- Log in to post comments
![]() |
ลิขสิทธิ์ของบทความเป็นของเจ้าของบทความแต่ละชิ้น ผลงานนี้ ใช้สัญญาอนุญาตของครีเอทีฟคอมมอนส์แบบ แสดงที่มา-อนุญาตแบบเดียวกัน 3.0 ที่ยังไม่ได้ปรับแก้ |
Comments
Re: กลเม็ดการ search ใน aptitude
on 15 May, 2009 - 19:10 Permalink
หามานาน คราวนี้ผมจะเลิกใช้ apt-cache search ...| grep ... ได้สักที แจ่มแจ้งแล้วครับ