หากคุณใช้ Ubuntu หรือ distro Linux berbasis Debian อื่นๆ คุณน่าจะเคยอ่านคำแนะนำการติดตั้งที่บอกให้ใช้คำสั่ง APT ส่วนบางคำแนะนำบอกให้ใช้ dpkg
การติดตั้งแพ็กเกจบนระบบ Linux ด้วยตัวจัดการแพ็กเกจใดตัวหนึ่ง มีความแตกต่างกันไหม? ความต่างคืออะไร? วันนี้เราจะตอบคำถามเหล่านี้ เพื่อให้คุณรู้วิธีติดตั้งแพ็กเกจบน Ubuntu ให้ดีที่สุด
APT vs dpkg: ตัวติดตั้งแพ็กเกจสำคัญ 2 ตัว
APT และ dpkg เป็นอินเทอร์เฟซจัดการแพ็กเกจบรรทัดคำสั่งทั้งคู่ ใช้ในเทอร์มินัลบน Ubuntu และระบบ berbasis Debian อื่นๆ ทั้งคู่ติดตั้งไฟล์ DEB และแสดงรายการแพ็กเกจที่ติดตั้งได้
แต่คุณอาจสงสัยว่าถ้าคล้ายกันขนาดนี้ ทำไมต้องมีทั้ง APT และ dpkg?
อินเทอร์เฟซทั้งสองทำงานร่วมกัน โดย APT ทำหน้าที่เป็นเครื่องมือจัดการแพ็กเกจที่สมบูรณ์ผ่านการใช้ dpkg
สับสนไหม? มาแยกความแตกต่างสำคัญกัน
APT ใช้ dpkg ติดตั้งแพ็กเกจ
เมื่อ APT (หรือคู่หมืด Apt-get) ติดตั้งแพ็กเกจ มันใช้ dpkg ทำงานด้านหลัง (back-end) เพื่อทำให้สำเร็จ ในลักษณะนี้ dpkg ทำหน้าที่เป็นเครื่องมือ "ใต้ฝาผืน" สำหรับอินเทอร์เฟซที่ใช้งานง่ายกว่าของ APT
APT ดาวน์โหลดแพ็กเกจได้
กับ APT คุณดึงไฟล์จาก remote repository และติดตั้งได้ในคำสั่งเดียว ประหยัดงานค้นหาและดาวน์โหลดแพ็กเกจด้วยตนเองก่อนติดตั้ง
กับ dpkg คุณติดตั้งไฟล์ local ที่ดาวน์โหลดมาเองเท่านั้น มันไม่สามารถค้นหา remote repositories หรือดึงแพ็กเกจจากที่นั่นได้
Dpkg ไม่ติดตั้ง Dependencies (พึ่งพา)
เมื่อติดตั้งแพ็กเกจด้วย dpkg จะติดตั้งแค่แพ็กเกจนั้นอย่างเดียว บางแพ็กเกจต้องการซอฟต์แวร์เพิ่มเติมที่เรียกว่า dependencies เพื่อทำงาน หากเป็นเช่นนั้น dpkg อาจเตือนด้วยข้อความข้อผิดพลาด
แต่ APT จะตรวจสอบและดึง dependencies ที่เกี่ยวข้องโดยอัตโนมัติ เพื่อให้สิ่งที่คุณติดตั้งทำงานถูกต้อง นั่นคือเหตุผลที่เราแนะนำ หลังติดตั้งแพ็กเกจด้วย dpkg ให้ใช้คำสั่งพิเศษของ APT สำหรับกู้คืน dependencies
sudo apt install -f
Dpkg จัดทำดัชนีเฉพาะแพ็กเกจ local
หากคุณพยายามหาข้อมูลแพ็กเกจที่ติดตั้งในระบบ ฟังก์ชัน --list ใน dpkg อาจเหมาะสมกว่า APT เพราะเช่นเดียวกับที่ไม่สามารถหาและดาวน์โหลดแพ็กเกจระยะไกลได้ dpkg ก็ไม่สามารถรายการแพ็กเกจที่ไม่ได้อยู่ในอุปกรณ์ local
dpkg --list
คำสั่ง list ของ APT จะแสดงแพ็กเกจทุกตัวที่มันรู้ ไม่ว่าจะเป็น local หรือไม่ก็ตาม
apt list
เพื่อดูเฉพาะแพ็กเกจที่ติดตั้ง ต้องส่งตัวเลือก --installed หรือ -i
apt list --installed
Dpkg vs. Apt: อันไหนดีกว่าสำหรับคุณ?
หากต้องการติดตั้งแพ็กเกจ local ด้วย dpkg คุณทำได้โดยไม่มีปัญหา แต่คุณจะดีกว่ากับ APT หรือ Apt-get หากคุณค้นหาแพ็กเกจบน remote software repositories บ่อยๆ
APT จะทำงานค้นหาและดาวน์โหลดแพ็กเกจที่คุณต้องการ และรับรองว่า dependencies ทั้งหมดได้รับการตอบสนอง คุณยังใช้ dpkg ได้ แต่ APT จะทำหน้าที่เดียวกันพร้อมรับรองว่าซอฟต์แวร์ทำงานได้อย่างคุณต้องการ นอกจากนี้ APT เหมาะสำหรับถอนการติดตั้งแพ็กเกจและลบออกจากระบบอย่างถูกต้อง