ฉันพยายามคิดวิธีการติดตั้ง libgtk2.0-dev และพบว่าฉันต้องใช้
sudo aptitude install
แทน
sudo apt-get install
ทำไมทั้งสองวิธีต่างกันในการหาสิ่งของ?
ฉันพยายามคิดวิธีการติดตั้ง libgtk2.0-dev และพบว่าฉันต้องใช้
sudo aptitude install
แทน
sudo apt-get install
ทำไมทั้งสองวิธีต่างกันในการหาสิ่งของ?
คำตอบ:
apt-get
และaptitude
ทั้งสองส่วนหน้าเป็น dpkg ใช้อย่างใดอย่างหนึ่ง แต่อื่น ๆ ที่สอดคล้องกัน ความถนัดเป็นเรื่องใหม่และคาดว่าจะใช้งานได้ง่ายกว่า นอกจากนี้ยังรวบรวมapt-*
ฟังก์ชั่นบางอย่างเข้าด้วยกัน คุณสามารถใช้aptitude
เพื่อค้นหาและติดตั้งในขณะที่ apt- * ที่คุณต้องการapt-get
และapt-cache
สำหรับการติดตั้งและค้นหาตามลำดับ
ฉันมักจะแทนที่apt-get
ตัวอย่างทั้งหมดด้วยaptitude
เมื่อคัดลอกและวางคำสั่ง
ทำงานaptitude
โดยไม่มีตัวเลือกใด ๆ เพื่อรับอินเทอร์เฟซสำหรับการเลือกแพ็คเกจ ฉันไม่เคยใช้มันเลยไม่รู้เลยว่ามันเป็นมิตรกับมันอย่างไร
apt-getและ aptitudeเป็นทั้งอินเตอร์เฟสกับ dpkg , Debian package manager
ความถนัดมาช้ากว่าapt-ชุดของคำสั่งและมีการใช้งานบางส่วนให้บริการไม่ได้อยู่ในหลัง แต่ผมยังไม่ได้เจอกรณีที่คุณมีการใช้อย่างใดอย่างหนึ่งในช่วงอื่น ๆ
รายการ Wikipedia สำหรับความถนัดระบุว่ามันเริ่มต้นจาก front-end ของapt- suite:
aptitudeเป็นส่วนหน้าของ Advanced Packaging Tool (APT) จะแสดงรายการแพคเกจซอฟต์แวร์และอนุญาตให้ผู้ใช้เลือกแพ็กเกจโต้ตอบเพื่อติดตั้งหรือลบ [... ] ถึงแม้ความถนัดเป็นปฏิบัติการเพียงอย่างเดียว แต่ก็มีฟังก์ชั่น CLI ที่คล้ายกับความสามารถของเครื่องมือ (apt-get, apt-cache, apt-listchanges และอื่น ๆ ) ความถนัดยังเลียนแบบตัวเลือกบรรทัดคำสั่ง apt-get ส่วนใหญ่ทำให้มันทำหน้าที่แทนการดรอปอินสำหรับการใช้งาน apt-get บางส่วน
ผู้ใช้ Debian เป็นเวลานานได้บอกฉันที่อื่นว่าaptitude
มีฐานข้อมูลของตัวเองที่เก็บไว้ข้างหนึ่งที่apt
เก็บ ซึ่งหมายความว่าการใช้ทั้งสองการแลกเปลี่ยนกันได้จะส่งผลให้เกิดความสับสนในบางครั้งโดยเฉพาะอย่างยิ่งaptitude
เมื่อดูเหมือนว่าจะมีสำเนาของสถานะแพ็กเกจที่ค้างอยู่เล็กน้อย ฉันเคยเห็นสิ่งนี้เกิดขึ้น: มันส่งผลในสิ่งต่าง ๆ เช่นแพคเกจที่คุณไม่สามารถลบหรือติดตั้งไม่ได้
โปรแกรม GUI synaptic
ไม่มีปัญหานี้เนื่องจากต้องอาศัยapt
ฐานข้อมูลทั้งหมด
Aptitude และ apt-get ทำหน้าที่ตรงตามวัตถุประสงค์เดียวกันสำหรับ Ubuntu Dapper และอื่น ๆ ก่อนหน้านั้น apt-get อาจไม่ลบสิ่งที่ควรทำโดยอัตโนมัติ
หนึ่งในความแตกต่างเล็กน้อยคือถ้าคุณมีแพ็คเกจที่ทำเครื่องหมายสำหรับ 'ลบอัตโนมัติ' ซึ่งในขณะที่การติดตั้ง apt-get อย่างง่ายจะแสดงรายการเหล่านั้นการติดตั้ง aptitude จะดำเนินต่อไป
ไม่ใช่เรื่องใหญ่เว้นแต่คุณจะติดตั้งแพคเกจด้วย 'build-dep' เริ่มต้นใน 8.10 แพ็คเกจที่ติดตั้ง build-dep ทั้งหมดถูกทำเครื่องหมายว่าติดตั้งอัตโนมัติ (จะถูกเพิ่มใน auto remove ใน apt-get และ remove ใน aptitude
(ถ้าคุณวางแผนที่จะสร้างและใช้ 'build-dep' สิ่งนี้จะป้องกันการทำเครื่องหมายอัตโนมัติหากคุณต้องการเก็บไว้ (และหรือป้องกันรายการลบอัตโนมัติขนาดใหญ่ใน apt-get Ex. mplayer sudo apt-get build-dep mplayer -o APT :: :: รับ Build-Dep อัตโนมัติ = false