dpkg, apt และ apt-get: ความแตกต่างที่แท้จริงและควรใช้แต่ละวิธีเมื่อใด

การปรับปรุงครั้งล่าสุด: 27/02/2026
ผู้แต่ง: ไอแซก
  • dpkg คือตัวจัดการแพ็กเกจระดับต่ำที่ติดตั้งและลบไฟล์ .deb ในเครื่องโดยไม่ต้องแก้ไขความสัมพันธ์ระหว่างแพ็กเกจอื่น
  • APT ทำหน้าที่เป็นเลเยอร์ระดับสูงเหนือ dpkg โดยจัดการที่เก็บซอฟต์แวร์ การแคช และการแก้ไขการพึ่งพาซอฟต์แวร์โดยอัตโนมัติ
  • apt, apt-get และ aptitude เป็นส่วนหน้าของ APT ที่แตกต่างกัน ซึ่งออกแบบมาเพื่อการใช้งานที่ต่างกัน ได้แก่ การใช้งานโดยผู้ใช้ทั่วไป การเขียนสคริปต์ และการจัดการขั้นสูง
  • การเลือกใช้เครื่องมือที่เหมาะสมกับบริบทจะช่วยลดความซับซ้อนในการบริหารจัดการและลดข้อผิดพลาดบนระบบ Debian และระบบที่พัฒนาต่อยอดจาก Debian

ตัวจัดการแพ็กเกจ dpkg apt และ apt-get

ในระบบปฏิบัติการที่ใช้ Debian เป็นพื้นฐาน (เช่น Ubuntu, Linux Mint หรือ Devuan) มักพบคำถามเกี่ยวกับเรื่องนี้ได้บ่อยมาก dpkg, apt, apt-get หรือแม้แต่ aptitude แตกต่างกันอย่างไร?มองเผินๆ แล้ว พวกมันดูเหมือนจะทำหน้าที่เหมือนกันหมด คือ ติดตั้ง อัปเดต และลบโปรแกรม อย่างไรก็ตาม แต่ละโปรแกรมมีบทบาทที่แตกต่างกันภายในระบบนิเวศของซอฟต์แวร์ และการเข้าใจเรื่องนี้จะช่วยให้คุณประหยัดเวลาและปัญหาได้มาก

ในบทความนี้ เราจะอธิบายอย่างละเอียดว่ามันทำงานอย่างไร dpkg ในฐานะตัวจัดการระดับต่ำAPT นำเสนออะไรในฐานะเลเยอร์บนสุด และมีความแตกต่างอย่างไร? เหมาะสม, เหมาะสม-ได้ และความสามารถและคำสั่งพื้นฐานที่คุณควรเรียนรู้ในแต่ละกรณี แนวคิดก็คือ เมื่ออ่านจบแล้ว คุณจะมีความเข้าใจอย่างชัดเจน ควรใช้เครื่องมือแต่ละชนิดเมื่อใดและเพราะเหตุใดทั้งในงานประจำวันและในงานหรือสคริปต์ที่ซับซ้อนมากขึ้น

รากฐานของทุกสิ่งคือ dpkg ซึ่งเป็นตัวจัดการแพ็กเกจระดับต่ำ

เสาหลักที่รองรับระบบแพ็กเกจทั้งหมดใน Debian คือ dpkg คือตัวจัดการแพ็กเกจพื้นฐานที่ทำงานโดยตรงกับไฟล์ .debมันเป็นโปรแกรมจัดการแพ็กเกจตัวแรกสำหรับ Debian และจนถึงทุกวันนี้ก็ยังคงเป็นมาตรฐานสำหรับระบบปฏิบัติการที่พัฒนาต่อยอดจาก Debian ทั้งหมด หากคุณเคยใช้ RPM มาก่อน คุณสามารถแปลงแพ็กเกจได้ด้วย แปลงแพ็กเกจด้วย Alien เพื่อสร้างไฟล์ .deb ที่สามารถติดตั้งได้ด้วย dpkg

แตกต่างจากเครื่องมือระดับสูง dpkg สนใจเฉพาะเรื่องต่อไปนี้เท่านั้น ติดตั้ง ถอนการติดตั้ง และสอบถามข้อมูลแพ็กเกจ .deb ในเครื่องมันไม่รองรับการจัดการคลังเก็บแพ็กเกจระยะไกล ไม่ดาวน์โหลดแพ็กเกจจากอินเทอร์เน็ต หรือแก้ไขการพึ่งพาของแพ็กเกจโดยอัตโนมัติ หากคุณติดตั้งอะไรบางอย่างด้วย dpkg แล้วพบว่าไลบรารีบางตัวหายไป คุณจะต้องแก้ไขด้วยตนเอง

นั่นทำให้ dpkg เป็นเครื่องมือที่เหมาะสมอย่างยิ่งสำหรับ จัดการพัสดุภัณฑ์ด้วยวิธีการที่แม่นยำและควบคุมได้เป็นอย่างดี (ตัวอย่างเช่น เมื่อคุณดาวน์โหลดไฟล์ .deb ด้วยตนเอง หรือเมื่อคุณสร้างแพ็กเกจของคุณเอง) แต่ก็หมายความว่าคุณจำเป็นต้องรู้แน่ชัดว่าคุณกำลังทำอะไรกับส่วนประกอบที่จำเป็นต่างๆ

แพ็คเกจไบนารีที่ให้ยูทิลิตีนี้ใน Debian นั้น นอกจาก dpkg แล้ว ยังมีเครื่องมืออื่นๆ ที่เกี่ยวข้องอีกด้วย เช่น dpkg-deb, dpkg-split, dpkg-query, dpkg-divert หรือ dpkg-triggerพร้อมด้วยสาธารณูปโภคเสริมต่างๆ เช่น update-alternatives o start-stop-daemonสำหรับงานสร้างแพ็กเกจ จะมีแพ็กเกจแยกต่างหาก dpkg-devซึ่งเพิ่มเครื่องมือคอมไพล์เข้าไป

แสดงรายการแพ็กเกจและสถานะด้วยคำสั่ง dpkg

หนึ่งในสิ่งแรกๆ ที่ผู้ดูแลระบบมักต้องการคือ ตรวจสอบว่ามีโปรแกรมใดบ้างที่ติดตั้งอยู่ในระบบด้วย dpkg สามารถทำได้หลายวิธี:

  • dpkg -l: แสดงรายการแพ็กเกจพร้อมสถานะ (ติดตั้งแล้ว ลบแล้ว เป็นต้น)
  • dpkg -l nombre_paquete: กรองเฉพาะแพ็กเกจนั้นและบอกว่าติดตั้งแล้วหรือไม่
  • dpkg --get-selections: แสดงรายการแพ็กเกจทั้งหมดและแพ็กเกจที่คุณเลือกอยู่ในปัจจุบัน
  • dpkg --get-selections paquete: ตรวจสอบอย่างรวดเร็วว่าแพ็กเกจที่ระบุถูกทำเครื่องหมายว่าติดตั้งแล้ว ถอนการติดตั้งแล้ว หรือสถานะอื่นๆ หรือไม่

รายละเอียดที่น่าสงสัยคือ คำสั่ง `dpkg –get-selections` ยังแสดงรายการแพ็กเกจที่อยู่ในสถานะ "ถอนการติดตั้ง" ด้วยนี่คือแพ็กเกจที่ถูกถอนการติดตั้งไปแล้ว แต่ยังคงเก็บไฟล์การกำหนดค่าหรือข้อมูลเมตาไว้ในระบบ เราจะมาดูกันในภายหลังว่าสิ่งนี้แสดงผลแตกต่างกันอย่างไรเมื่อทำการค้นหาด้วย APT

ติดตั้ง ลบ และล้างแพ็กเกจด้วย dpkg

ในการทำงานโดยตรงกับไฟล์ .deb ที่ดาวน์โหลดมา dpkg มีคำสั่งที่ชัดเจนมากให้ใช้งาน ติดตั้งและถอนการติดตั้งแพ็กเกจเฉพาะโดยไม่ต้องผ่านที่เก็บแพ็กเกจ:

  • dpkg -i paquete.debติดตั้งแพ็กเกจที่ระบุ (install)
  • dpkg -r nombre_paquete: ลบแพ็กเกจ แต่ยังคงไฟล์การกำหนดค่าไว้ (ลบ)
  • dpkg -P nombre_paquete: ดำเนินการล้างข้อมูลทั้งหมด รวมถึงลบไฟล์การกำหนดค่าที่เกี่ยวข้องด้วย (purge)

ใช้เมื่อไหร่ ตัวเลือก -P แทนที่จะเป็น -r ทั้งไฟล์ไบนารีและไฟล์การกำหนดค่าจะถูกล้าง ซึ่งมีประโยชน์มากหากคุณต้องการปล่อยให้ระบบอยู่ในสภาพเหมือนไม่เคยติดตั้งแอปพลิเคชันนั้นมาก่อน อย่างไรก็ตาม เราขอย้ำอีกครั้งว่า dpkg จะไม่ทำอะไรเลย... ลบส่วนประกอบที่จำเป็นซึ่งติดตั้งไว้สำหรับแพ็กเกจนั้นโดยอัตโนมัติคุณจะต้องจัดการเรื่องนั้นด้วยตัวเอง หรือไม่ก็ต้องพึ่งพา APT

ดูข้อมูลและเนื้อหาของแพ็กเกจ .deb

คุณสมบัติที่น่าสนใจอีกประการหนึ่งคือความสามารถในการ ตรวจสอบว่าแพ็กเกจ .deb ประกอบด้วยอะไรบ้าง หรือมีข้อมูลเมตาอะไรบ้างนี่แหละคือจุดที่ประโยชน์ใช้สอยเข้ามามีบทบาท dpkg-debซึ่งรวมอยู่ในแพ็กเกจ dpkg เอง:

  • dpkg-deb -I paquete.deb: แสดงข้อมูลแพ็กเกจโดยละเอียด (ชื่อ เวอร์ชัน แพ็กเกจที่ต้องพึ่งพา ผู้ดูแล ฯลฯ)
  • dpkg-deb --contents paquete.deb: แสดงรายการไฟล์ทั้งหมดที่จะถูกติดตั้งในระบบเมื่อติดตั้งไฟล์ .deb นั้น

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

APT: เลเยอร์ระดับสูงที่อยู่เหนือ dpkg

APT (Advanced Package Tool) ถูกสร้างขึ้นบนพื้นฐานของ dpkg ซึ่งเป็น ชุดของไลบรารีและยูทิลิตี้ที่เพิ่มการแก้ไขการพึ่งพาและการจัดการที่เก็บซอฟต์แวร์แทนที่จะติดต่อโดยตรงกับไฟล์ .deb ผู้ใช้ส่วนใหญ่จะโต้ตอบกับเลเยอร์นี้ ซึ่งจะเรียกใช้ dpkg สำหรับการดำเนินการระดับต่ำ

  DupeGuru คืออะไร การใช้งาน คุณลักษณะ ความคิดเห็น ราคา

APT ส่วนใหญ่เขียนขึ้นดังนี้ ไลบรารี C++ ที่มีฟังก์ชันสำหรับจัดการฐานข้อมูลของแพ็กเกจ เวอร์ชัน แหล่งที่มา และความสัมพันธ์ต่างๆโปรแกรมส่วนหน้าแบบบรรทัดคำสั่งหลายตัวใช้ไลบรารีนี้: apt-get, apt-cache, apt และรวมถึงเครื่องมือภายนอกต่างๆ เช่น aptitude หรืออินเทอร์เฟซกราฟิกแบบซินแนปติก

ใน Debian เวอร์ชันปัจจุบันทั้งหมด แพ็กเกจนี้ apt มีลำดับความสำคัญ "สำคัญ" ซึ่งหมายความว่า มันเป็นส่วนหนึ่งของการติดตั้งระบบพื้นฐานทุกระบบและถึงแม้ว่า dpkg จะยังคงเป็นแกนหลัก แต่สำหรับผู้ใช้ทั่วไปแล้ว "ตัวจัดการแพ็กเกจ" ที่ใช้ในชีวิตประจำวันคือ APT ซึ่งก็มีคุณสมบัติอื่นๆ อีกด้วย มันอยู่ร่วมกับรูปแบบอื่นๆ เช่น Flatpak พบได้ในโต๊ะทำงานสมัยใหม่หลายๆ แบบ

หนึ่งในคุณสมบัติที่ทรงพลังที่สุดของ APT คือ: จัดการการติดตั้งและการถอดถอนโปรแกรมตามลำดับที่เหมาะสมที่สุดก่อนที่จะเริ่มใช้งาน dpkg ระบบจะทำการจัดเรียงรายการแพ็กเกจตามลำดับชั้นเพื่อลดความขัดแย้งให้น้อยที่สุด และในกรณีที่ยากลำบากเท่านั้นจึงจะใช้วิธีการบังคับการทำงานภายในของ dpkg ด้วยตัวเลือกต่างๆ --force หากคุณไม่สามารถหาทางเลือกที่ปลอดภัยได้

แหล่งเก็บข้อมูลและไฟล์ sources.list

APT ทำงานได้เสมอจาก แหล่งเก็บซอฟต์แวร์ที่ประกาศไว้ในไฟล์การกำหนดค่าไฟล์หลักคือ /etc/apt/sources.listนี่คือที่ที่กำหนดแหล่งแพ็กเกจอย่างเป็นทางการของ Debian หรือ Ubuntu และสามารถเพิ่มที่เก็บแพ็กเกจของบุคคลที่สามเพิ่มเติมได้ หากคุณต้องการ สร้างคลังซอฟต์แวร์ของคุณเอง ข้อมูลนี้จะเป็นประโยชน์สำหรับคุณในการทำความเข้าใจวิธีการกำหนดเป้าหมาย APT ไปยังแหล่งที่มาที่กำหนดเอง

นอกจากไฟล์หลักแล้ว มักจะมีไฟล์อื่นๆ อีกด้วย ไฟล์เพิ่มเติมภายใต้ /etc/apt/sources.list.d/ สำหรับแหล่งเก็บข้อมูลเฉพาะเจาะจง จุดเหล่านี้อาจหมายถึงไดเร็กทอรีในเครื่องหรือสื่อทางกายภาพ (เช่น ซีดี/ดีวีดี) รวมถึงเซิร์ฟเวอร์ระยะไกลที่สามารถเข้าถึงได้ผ่าน HTTP, HTTPS หรือ FTP

นอกจากนี้ APT ยังดูแลรักษา แคชข้อมูลภายในเครื่องเกี่ยวกับแพ็กเกจทั้งหมดที่มีอยู่ในที่เก็บเหล่านั้นโดยส่วนใหญ่จะถูกเก็บไว้ใต้ /var/lib/apt/ และจะได้รับการอัปเดตโดยใช้คำสั่งที่คุ้นเคย apt update o apt-get update.

เพื่อความสะดวกในการแก้ไขแบบอักษร ชุดโปรแกรมนี้จึงมีฟังก์ชันต่างๆ มาให้ด้วย คำสั่ง apt edit-sourcesซึ่งจะเปิดไฟล์หลักด้วยโปรแกรมแก้ไขข้อความเทอร์มินัลเริ่มต้นของคุณ sources.list หรือไฟล์ที่คุณระบุ หากคุณไม่ได้ตั้งค่าโปรแกรมแก้ไขข้อความไว้ ระบบจะขอให้คุณเลือกโปรแกรม (เช่น nano, vim, neovim เป็นต้น) และหลังจากนั้น ระบบจะใช้โปรแกรมที่คุณเลือกไว้เสมอ

การจัดการการพึ่งพาแพ็กเกจและสถานะ

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

นอกจากนี้ APT ยังเก็บรักษาไฟล์เพิ่มเติมอีกไฟล์หนึ่งด้วย /var/lib/apt/extended_statesโดยจะบันทึกว่าแพ็กเกจนั้นถูกติดตั้งโดยผู้ใช้โดยตรงหรือเป็นส่วนประกอบที่จำเป็นของแพ็กเกจอื่น ข้อมูลนี้มีความสำคัญต่อฟังก์ชันต่างๆ เช่น apt autoremove เพื่อให้พวกเขาสามารถค้นหาได้ว่าแพ็กเกจใดบ้างที่อาจถูกลบออกเนื่องจากเป็น "แพ็กเกจที่ไม่มีเจ้าของ"

ในส่วนของสถานะต่างๆ มีรายละเอียดที่น่าสนใจอย่างหนึ่งคือ APT เมื่อนำไปใช้ apt list --installed, ข้ามแพ็กเกจที่ระบุว่า “ถอนการติดตั้ง” (โปรแกรมที่ถูกถอนการติดตั้งแล้วแต่ยังคงการตั้งค่าไว้) โปรแกรมเหล่านี้จะปรากฏในผลลัพธ์ของ apt list เช่น “residual-config” ในขณะที่ dpkg --get-selections ใช่ มันแสดงผลออกมาโดยตรง ถ้าหากรายการใดไม่ตรงกัน แนะนำให้ตรวจสอบผลลัพธ์เดิมและกรองอีกครั้ง grep เพื่อวิเคราะห์กรณีที่คลุมเครือเหล่านั้น

คำสั่ง apt พื้นฐานสำหรับการใช้งานประจำวัน

ด้วยการมาถึงของระบบบัญชาการสมัยใหม่ aptDebian และ Ubuntu ให้บริการ อินเทอร์เฟซที่เป็นมิตรต่อผู้ใช้มากขึ้นสำหรับงานจัดการแพ็กเกจทั่วไปการรวมฟังก์ชันต่างๆ ที่ก่อนหน้านี้แยกออกจากกัน apt-get y apt-cacheแม้ว่าจะใช้ไลบรารีเดียวกันภายใน แต่ไวยากรณ์สะดวกกว่าและผลลัพธ์อ่านง่ายกว่า นอกจากนี้ยังสามารถใช้งานร่วมกับรูปแบบอื่นๆ บนเดสก์ท็อปได้ เช่น จัดการ AppImage ใน Linux.

ไฟล์ /etc/apt/sources.list ที่เรากล่าวถึงไปก่อนหน้านี้จะเข้มข้นขึ้นโดยค่าเริ่มต้น ข้อมูลเกี่ยวกับแหล่งเก็บข้อมูลทั้งหมดที่ apt ใช้ซึ่งแตกต่างจากเครื่องมืออื่นๆ เช่น yum ซึ่งโดยทั่วไปจะจัดการไฟล์การกำหนดค่าหลายไฟล์ ทำให้การตั้งค่าเริ่มต้นง่ายขึ้นมากสำหรับผู้ใช้ที่มีประสบการณ์น้อย

อัปเดตข้อมูลคลังเก็บข้อมูล

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

  • apt update: ดาวน์โหลดดัชนีแพ็กเกจอีกครั้งจากที่เก็บข้อมูลที่กำหนดค่าไว้ทั้งหมด

ความแตกต่างจากของเก่า apt-get update นั่นคือ apt แสดงข้อมูลเพิ่มเติมที่เป็นประโยชน์มากเช่น จำนวนแพ็กเกจที่สามารถอัปเดตได้ และข้อความแนะนำให้เรียกใช้งาน apt list --upgradable เพื่อดูรายละเอียดเหล่านั้นอย่างชัดเจน

ค้นหาแพ็กเกจในที่เก็บแพ็กเกจ

ในการค้นหาโปรแกรมหรือห้องสมุดจากที่มีอยู่ เราสามารถทำได้โดยการค้นหา ใช้ฟังก์ชันค้นหาในตัวของ APTตามธรรมเนียมแล้ว วิธีนี้ทำด้วย apt-cache searchแต่คำสั่ง apt ลดความซับซ้อนของไวยากรณ์:

  • apt search nombre o apt-cache search nombre: พวกมันจะค้นหาข้อความที่ระบุในฐานข้อมูลของแพ็กเกจที่ดาวน์โหลดมา

วิธีนี้ง่ายกว่า ดูว่าแพ็กเกจใดตรงกับแอปพลิเคชันเฉพาะนั้น (ตัวอย่างเช่น ค้นหา “gimp”, “vlc” หรือ “libreoffice”) แล้วตรวจสอบว่ามีโปรแกรมดังกล่าวในเวอร์ชันของระบบปฏิบัติการที่คุณใช้งานอยู่หรือไม่

ติดตั้งและถอนการติดตั้งแพ็กเกจด้วย apt

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

  • apt install paquete: ติดตั้งแพ็กเกจที่ร้องขอและทุกสิ่งที่จำเป็นเป็นส่วนประกอบสำคัญ
  • apt remove paquete: ถอนการติดตั้งแพ็กเกจ แต่จะเก็บไฟล์การตั้งค่าไว้
  • apt remove --purge paquete o apt purge paquete: ลบแพ็กเกจและไฟล์การกำหนดค่าระบบทั้งหมด
  วิธีดาวน์โหลดและติดตั้งเคอร์เซอร์สำหรับ Windows 10

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

ทำความสะอาดแผนกต่างๆ และนำบรรจุภัณฑ์ที่เหลือออกไป

หลังจากติดตั้งและถอนการติดตั้งแอปพลิเคชันไปเรื่อย ๆ แอปพลิเคชันเหล่านั้นก็จะสะสมไฟล์ แพ็กเกจที่ถูกติดตั้งไว้เป็นส่วนประกอบที่จำเป็นของแพ็กเกจอื่น แต่ไม่จำเป็นอีกต่อไปแล้วเพื่อเพิ่มพื้นที่ว่างและรักษาระบบให้สะอาด APT จึงมีบริการดังต่อไปนี้:

  • apt autoremove: ลบส่วนประกอบที่ติดตั้งโดยอัตโนมัติซึ่งไม่จำเป็นสำหรับแพ็กเกจที่ติดตั้งอยู่ในปัจจุบันอีกต่อไป

คำสั่งนี้มีประโยชน์เป็นพิเศษเนื่องจาก มาตรการบำรุงรักษาตามระยะเวลาเพราะมันจะลบไลบรารีและไฟล์เก่าๆ ที่กินพื้นที่โดยไม่ได้ก่อให้เกิดประโยชน์ใดๆ ต่อระบบปัจจุบัน

อัปเดตแพ็กเกจที่ติดตั้งแล้วด้วย apt

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

  • apt upgrade: อัปเดตแพ็กเกจที่ติดตั้งแล้วให้เป็นเวอร์ชันล่าสุด ตราบใดที่การอัปเดตนั้นไม่ได้จำเป็นต้องติดตั้งหรือลบแพ็กเกจเพิ่มเติมจำนวนมาก
  • apt full-upgrade: ดำเนินการอัปเดตที่รุนแรงยิ่งขึ้น ทำให้คุณสามารถติดตั้งหรือลบแพ็กเกจได้หากจำเป็นเพื่อให้กระบวนการเสร็จสมบูรณ์ (เทียบเท่ากับเวอร์ชันเก่า) apt-get dist-upgrade).

การวิ่งก่อนเป็นเรื่องปกติ apt update ตามด้วย apt upgrade เป็นส่วนหนึ่งของการบำรุงรักษาตามปกติ และสำรองไว้ full-upgrade สำหรับการเปลี่ยนแปลงเวอร์ชันหลัก หรือเมื่อมีการอัปเดตเคอร์เนลและส่วนประกอบสำคัญ

คำสั่งที่มีประโยชน์อื่นๆ จากชุดคำสั่ง apt

นอกเหนือจากรายการสั่งซื้อยอดนิยมแล้ว APT ยังรวมถึงรายการอื่นๆ อีกด้วย คำสั่งเพิ่มเติมบางส่วนที่จะทำให้ชีวิตง่ายขึ้นมาก:

  • apt show paquete: แสดงข้อมูลโดยละเอียดเกี่ยวกับแพ็กเกจ (คำอธิบาย เวอร์ชัน การพึ่งพา แหล่งเก็บซอร์สโค้ด ฯลฯ) โดยเรียงลำดับข้อมูลอย่างเป็นระเบียบและไม่มีข้อมูลที่ไม่เกี่ยวข้อง
  • apt list: แสดงรายการแพ็กเกจตามตัวกรองต่างๆ; ด้วย --installed แสดงให้เห็นถึงการติดตั้งและด้วย --upgradable เหล่านั้นมีการอัปเดตให้ใช้งานได้แล้ว
  • apt edit-sources: เปิดไฟล์ต้นฉบับ APT เพื่อแก้ไขที่เก็บซอฟต์แวร์

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

Apt-get และ aptitude: เครื่องมือจัดการส่วนหน้า (frontend) คลาสสิกอื่นๆ ของ APT

แม้ว่าคำสั่ง apt ได้รับความสนใจมากขึ้นในช่วงไม่กี่ปีที่ผ่านมา apt-get และ aptitude ยังคงเป็นเครื่องมือที่มีประโยชน์อย่างมาก ในระบบนิเวศของ Debian แต่ละอย่างมีบทบาทของตัวเอง และมีเหตุผลที่น่าสนใจในการรู้ว่าควรใช้ในบริบทใด

ประวัติศาสตร์ apt-get เป็น ส่วนติดต่อผู้ใช้แบบบรรทัดคำสั่งตัวแรกสำหรับ APTมีมาตั้งแต่ช่วงปลายทศวรรษ 90 และปรากฏอยู่ในสคริปต์และเอกสารมากมาย โดยได้รับการออกแบบมาเพื่อนำเสนออินเทอร์เฟซที่เสถียรและคาดเดาได้ เหมาะสำหรับการทำงานอัตโนมัติและงานที่ไม่ต้องมีการโต้ตอบ

สำหรับส่วนของตน aptitude เกิดเป็น ทางเลือกที่ชาญฉลาดและสะดวกสบายกว่าสำหรับผู้ใช้ที่ชื่นชอบสภาพแวดล้อมแบบโต้ตอบโปรแกรมนี้มีทั้งโหมด CLI ที่ใช้งานร่วมกับสคริปต์ได้ และอินเทอร์เฟซแบบข้อความ (ncurses) พร้อมเมนู ตัวกรอง และมุมมองแพ็กเกจที่จัดระเบียบไว้

ฟังก์ชันและคำสั่งทั่วไปของ apt-get

กับ apt-get คุณสามารถทำภารกิจต่างๆ ได้เกือบเหมือนกับการใช้ aptอย่างไรก็ตาม ไวยากรณ์ของโปรแกรมค่อนข้างซับซ้อนกว่า และผลลัพธ์ที่ใช้งานได้ไม่ค่อยสะดวกนัก คำสั่งที่ใช้บ่อยที่สุด ได้แก่:

  • apt-get update: อัปเดตดัชนีของที่เก็บข้อมูล
  • apt-get upgrade: อัปเดตแพ็กเกจที่ติดตั้งไว้โดยไม่ทำการเปลี่ยนแปลงที่รบกวนระบบมากเกินไป
  • apt-get dist-upgrade: เทียบเท่ากับ apt full-upgrade ทันสมัย ​​ช่วยให้คุณสามารถติดตั้งและถอดแพ็กเกจเพื่อทำการอัปเกรดที่ซับซ้อนได้
  • apt-get install paquete: ติดตั้งแพ็กเกจจากที่เก็บโดยการแก้ไขการพึ่งพา (dependencies)
  • apt-get remove paquete y apt-get purge paqueteพวกมันจะลบแพ็กเกจ ไม่ว่าจะรวมไฟล์การตั้งค่าหรือไม่ก็ตาม

ข้อได้เปรียบที่สำคัญของ apt-get คือ พฤติกรรมของมันยังคงเสถียรอย่างมากระหว่างเวอร์ชันต่างๆด้วยเหตุนี้ นักพัฒนา Debian จึงแนะนำ ใช้งานต่อไปในสคริปต์และระบบอัตโนมัติเพราะ apt มันเน้นผู้ใช้งานเป็นหลักมากกว่า และสามารถเปลี่ยนแปลงรายละเอียดผลลัพธ์หรือค่าเริ่มต้นได้ตลอดเวลา

ความถนัด: อินเทอร์เฟซ ncurses และการแก้ไขการพึ่งพาขั้นสูง

แตกต่างจาก apt และ apt-get aptitude มีส่วนช่วย อินเทอร์เฟซโหมดข้อความที่สมบูรณ์แบบมาก ซึ่งเปิดใช้งานได้ง่ายๆ เพียงแค่เรียกใช้งาน sudo aptitude โดยไม่ต้องโต้แย้ง จากหน้าจอนั้นคุณสามารถ:

  • เรียกดูตามหมวดหมู่ของแพ็กเกจ (ติดตั้งแล้ว, พร้อมใช้งาน, ล้าสมัย ฯลฯ)
  • ค้นหาและกรองแพ็กเกจโดยใช้เกณฑ์ต่างๆ (ชื่อ, คำอธิบาย, สถานะ)
  • เลือกแพ็กเกจหลายรายการเพื่อติดตั้ง อัปเดต หรือลบ แล้วทำการเปลี่ยนแปลงทั้งหมดพร้อมกัน

จุดแข็งทางเทคนิคที่สำคัญที่สุดของมันอยู่ที่... ระบบการแก้ไขปัญหาการพึ่งพาอาศัยกันโดยพิจารณาจากคะแนนและทางเลือกเมื่อเกิดความขัดแย้งที่ซับซ้อน โปรแกรม Aptitude มักจะเสนอทางออกหลายวิธี (เช่น การถอนการติดตั้งโปรแกรม การเก็บเวอร์ชันเก่าไว้ หรือการติดตั้งโปรแกรมเพิ่มเติม) และอนุญาตให้ผู้ใช้ทำเครื่องหมายส่วนต่างๆ ของข้อเสนอที่ต้องการเก็บไว้หรือทิ้งไปในการแก้ไขปัญหาครั้งต่อไป

จากมุมมองของการใช้งานผ่านบรรทัดคำสั่ง aptitude นอกจากนี้ยังรองรับคำสั่งต่างๆ เช่น:

  • aptitude update: เพื่ออัปเดตรายการแพ็กเกจ
  • aptitude install paquete y aptitude remove paquete: ติดตั้งและถอนการติดตั้งแพ็กเกจในลักษณะเดียวกับ apt-get
  • aptitude full-upgrade: ดำเนินการอัปเดตอย่างสมบูรณ์ด้วยตรรกะการแก้ไขการพึ่งพาของตัวเอง
  แก้ไขข้อผิดพลาด Adobe Save For Web

นอกจากนี้ ความสามารถพิเศษ ระบบจะบันทึกรายละเอียดอย่างครบถ้วนว่าแพ็กเกจใดบ้างที่ติดตั้งด้วยตนเอง และแพ็กเกจใดบ้างที่ติดตั้งเป็นส่วนประกอบที่จำเป็นและมีตัวเลือกในการตรึงเวอร์ชัน ทำเครื่องหมายแพ็กเกจเพื่อป้องกันการอัปเดต เป็นต้น ฟังก์ชันบางอย่างเหล่านี้สามารถจำลองได้ในปัจจุบันโดยใช้ apt-markอย่างไรก็ตาม ผู้บริหารที่ใช้ทักษะนี้มานานหลายปียังคงให้ความสำคัญอย่างมากกับความสามารถเชิงปฏิบัติ

ความแตกต่างที่สำคัญระหว่าง dpkg, APT, apt-get, apt และ aptitude

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

ในระดับพื้นฐานที่สุดมีดังนี้ dpkg ซึ่งทำงานโดยตรงกับแพ็กเกจ .deb ในเครื่องมันไม่ได้แก้ไขปัญหาการพึ่งพาหรือสื่อสารกับที่เก็บซอฟต์แวร์ มันเพียงแค่ติดตั้ง ถอนการติดตั้ง หรือแสดงข้อมูลเกี่ยวกับแพ็กเกจเฉพาะเท่านั้น มักถูกนำไปเปรียบเทียบกับ RPM ในโลกของ Red Hatเนื่องจากพวกมันทำหน้าที่คล้ายคลึงกันในกลุ่มการแจกแจงของแต่ละตระกูล

ในระดับกลาง/สูง เรามี APT คือระบบจัดการแพ็กเกจที่มีทั้งคลังเก็บข้อมูล การแคชข้อมูล และการแก้ไขการพึ่งพาแพ็กเกจโดยอัตโนมัติมันให้ตรรกะว่าอะไรถูกติดตั้งและมาจากที่ไหน เวอร์ชันไหนดีที่สุด ฯลฯ ในโลกของ Red Hat การทำงานแบบขนานจะพบได้ในเครื่องมือต่างๆ เช่น YUM หรือ DNF ทำงานบน RPM.

เหนือ APT คือ ส่วนหน้าต่างๆ ของมัน:

  • apt-get: อินเทอร์เฟซแบบคลาสสิก แข็งแกร่ง และเสถียร เหมาะอย่างยิ่งสำหรับการเขียนสคริปต์และระบบอัตโนมัติ
  • apt: อินเทอร์เฟซผู้ใช้ปลายทางที่ทันสมัย ​​ซึ่งรวมฟังก์ชัน apt-get และ apt-cache เข้าไว้ด้วยกัน และให้ผลลัพธ์ที่ชัดเจนยิ่งขึ้น
  • aptitude: ตัวจัดการแพ็กเกจระดับสูง พร้อม ncurses TUI ที่เป็นตัวเลือก และระบบแก้ไขการพึ่งพาที่ซับซ้อนเป็นพิเศษ

หากเราพิจารณาความแตกต่างระหว่าง APT กับ DPKG ความแตกต่างพื้นฐานก็คือ APT สามารถดึงแพ็กเกจจากที่เก็บระยะไกล จัดการแหล่งที่มาหลายแหล่ง และจัดการการพึ่งพาของแพ็กเกจทั้งหมดได้ในขณะที่ DPKG จะติดตั้งและลบเฉพาะแพ็กเกจที่คุณส่งให้เป็นไฟล์ในเครื่องเท่านั้น

ถ้าเราเปรียบเทียบ apt และ apt-get ทั้งสองอย่างต่างก็มีข้อเสนอเหมือนกัน ฟังก์ชันการทำงานที่คล้ายคลึงกันมากสำหรับการติดตั้ง อัปเดต หรือลบแพ็กเกจแต่ apt ช่วยปรับปรุงการนำเสนอข้อมูล เพิ่มแถบแสดงความคืบหน้าในระหว่างการติดตั้ง และรวมสิ่งที่เคยทำด้วยคำสั่งต่างๆ เข้าไว้ในคำสั่งเดียว apt-get y apt-cacheในทางตรงกันข้าม apt-get มี API บรรทัดคำสั่งที่อนุรักษ์นิยมและเสถียรกว่าในระยะยาว

ในส่วนของความถนัด คุณลักษณะเด่นที่สำคัญที่สุดคือ อินเทอร์เฟซ ncurses และการจัดการความขัดแย้งด้านการพึ่งพาขั้นสูงในขณะที่ apt และ apt-get พยายามค้นหา "วิธีที่ดีที่สุด" ในคราวเดียว แต่ aptitude อนุญาตให้ผู้ใช้มีส่วนร่วมในกระบวนการแบบโต้ตอบ โดยตัดสินใจว่าจะเก็บแพ็กเกจใดไว้ ลดระดับแพ็กเกจใด หรือลบแพ็กเกจใดออก

ควรใช้ dpkg, apt, apt-get หรือ aptitude เมื่อใดบนระบบ Debian

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

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

เมื่อจัดการกับ กำหนดเวลาการติดตั้ง การปรับใช้ หรือสคริปต์การบำรุงรักษาเอกสารทางการเองก็แนะนำให้ยังคงพึ่งพาข้อมูลนี้ต่อไป apt-get (y apt-cache (สำหรับการสอบถาม) เนื่องจากพฤติกรรมการแสดงผลและตัวเลือกต่างๆ มีความเสถียรระหว่างเวอร์ชันมากกว่าของ aptซึ่งอาจเปลี่ยนแปลงรายละเอียดเล็กน้อยได้ เนื่องจากได้รับการออกแบบมาสำหรับมนุษย์ ไม่ใช่สำหรับเครื่องจักรมากนัก

dpkg นั้นถูกสงวนไว้เป็นหลักสำหรับ การดำเนินการระดับต่ำด้วยแพ็กเกจ .deb ที่ดาวน์โหลดด้วยตนเองโปรแกรมนี้มีประโยชน์สำหรับการตรวจสอบเนื้อหา หรือในกรณีที่คุณต้องการควบคุมอย่างละเอียดและไม่ต้องการให้ APT เข้ามาแทรกแซงโดยการแก้ไขการพึ่งพาของแพ็กเกจให้ นอกจากนี้ยังเป็นประโยชน์อย่างมากสำหรับสคริปต์การสร้างแพ็กเกจที่ซับซ้อน หรือสำหรับการแก้ไขปัญหาเฉพาะเจาะจงเกี่ยวกับไฟล์ .deb

ในส่วนของความสามารถนั้น มักจะปรากฏให้เห็นชัดเจนเมื่อ... คุณต้องเผชิญกับความขัดแย้งด้านการพึ่งพาที่ซับซ้อนมาก ในสภาพแวดล้อม Debian รุ่นเก่าหรือที่ได้รับการปรับแต่งอย่างมาก กลไกการแก้ไขปัญหาของมันมักจะเสนอทางเลือกที่หลากหลายกว่า และอินเทอร์เฟซ ncurses ของมันก็สะดวกมากสำหรับการสำรวจว่าการเปลี่ยนแปลงใดจะเกิดขึ้นก่อนที่จะยอมรับการดำเนินการครั้งใหญ่

ท้ายที่สุดแล้ว ระบบนิเวศของเครื่องมือทั้งหมดนี้เกิดขึ้นได้เพราะ... แต่ละระดับจะแก้ปัญหาที่แตกต่างกันภายในระบบจัดการแพ็กเกจใน Debiandpkg เปรียบเสมือนเครื่องมือระดับล่าง APT เปรียบเสมือนสมองที่ตัดสินใจว่าจะติดตั้งอะไรและจากที่ไหน และส่วนหน้าต่างๆ ของมัน (apt, apt-get, aptitude) เปรียบเสมือนหน้าตาที่มองเห็นได้ ซึ่งปรับให้เข้ากับโปรไฟล์ผู้ใช้ที่แตกต่างกัน ตั้งแต่ผู้เริ่มต้นจนถึงผู้ดูแลระบบที่ใช้เวลาส่วนใหญ่อยู่หน้าเทอร์มินัล

ติดตั้งแพ็กเกจ .deb และ .rpm โดยไม่ต้องใช้คำสั่ง
บทความที่เกี่ยวข้อง:
คู่มือฉบับสมบูรณ์สำหรับการติดตั้งแพ็กเกจ DEB และ RPM โดยไม่มีปัญหาใดๆ