ฉันคิดว่าจะเปลี่ยนไปใช้ความถนัด แต่ฉันได้ยินคนพูดว่า "ถ้าคุณใช้ฉลาดอยู่แล้วคุณควรรอจนกว่าการติดตั้งครั้งต่อไปของคุณจะเปลี่ยน" ทำไมผู้คนถึงพูดอย่างนี้? มีปัญหาอะไรบ้าง (ถ้ามี) สาเหตุนี้?
ฉันคิดว่าจะเปลี่ยนไปใช้ความถนัด แต่ฉันได้ยินคนพูดว่า "ถ้าคุณใช้ฉลาดอยู่แล้วคุณควรรอจนกว่าการติดตั้งครั้งต่อไปของคุณจะเปลี่ยน" ทำไมผู้คนถึงพูดอย่างนี้? มีปัญหาอะไรบ้าง (ถ้ามี) สาเหตุนี้?
คำตอบ:
apt-get และความถนัดที่แตกต่างกันมี UIs ที่เป็นส่วนหนึ่งของระบบการจัดการแพคเกจเดียวกันAPT ขั้นสูงบรรจุภัณฑ์เครื่องมือ ตัวอย่างเช่นทั้งสองมีการกำหนดค่าการใช้/etc/apt/apt.conf
ทั้งสองใช้ filespace และรูปแบบเดียวกันเพื่อเป็นตัวแทนของรัฐแพคเกจและ filespace เดียวกันในการจัดเก็บ .debs ดาวน์โหลด
ความแตกต่างของพวกเขาคือระบบกฎภายในเพื่อแสดงถึงความขัดแย้งที่อาจเกิดขึ้นระหว่างแพ็คเกจวิธีแก้ไข (พูดระหว่างapt-get dist-upgrade
vs. aptitude full-upgrade
) และวิธีแสดงสิ่งเหล่านี้เมื่อโต้ตอบกับผู้ใช้ โดยทั่วไปการพูดทั้งสองอย่างอาจทำสิ่งผิดปกติในสถานการณ์ที่มีเล่ห์เหลี่ยม แต่ apt-get มีแนวโน้มที่จะทำผิดมากกว่าความถนัด
คำแนะนำที่ดีมากมายอยู่ที่นี่แล้ว แต่ให้ฉันเพิ่มสิ่งหนึ่งที่ไม่มีใครพูดถึง หากคุณตัดสินใจที่จะเปลี่ยนคุณอาจต้องการเรียกใช้คำสั่งนี้ขึ้นอยู่กับสิ่งที่คุณเคยทำมาด้วยapt-get
:
aptitude keep-all
คำสั่งนั้นรีเซ็ตaptitude
ความรู้สึกว่าแพ็คเกจใดเป็นเด็กกำพร้าและควรถูกลบออก
นี่คือเหตุผลที่บางครั้งมีประโยชน์: สำหรับชั่วขณะหนึ่งทั้งสองนี้apt-get
และaptitude
จะติดตามแพคเกจที่ติดตั้งโดยอัตโนมัติเป็นการพึ่งพาสิ่งอื่น ตัวอย่างเช่นหากคุณติดตั้งmpd
คุณอาจได้รับlib-so-and-so
การพึ่งพา พวกเขาทำเช่นนี้เพื่อที่ว่าถ้าคุณในภายหลังลบmpd
, lib-so-and-so
จะถูกนำออกมากเกินไป แต่aptitude
และapt-get
จัดการกับเรื่องนี้ให้ทำความสะอาดต่างกัน aptitude
พยายามลบการอ้างอิงที่ถูกโยงถึงทั้งหมดทันที แต่apt-get
แนะนำให้คุณapt-get autoremove
ทำความสะอาดเท่านั้น (เหตุผลที่อยู่เบื้องหลังทั้งหมดนี้คือคุณได้รับห้องสมุดเท่านั้นที่mpd
จำเป็นถ้าคุณไม่เก็บmpd
คุณก็ไม่จำเป็นต้องใช้ห้องสมุดอีกต่อไปหากแพ็กเกจอื่นยังคงขึ้นอยู่กับมันทั้งสองaptitude
และapt-get
จะรู้สิ่งนี้และไม่ลองลบห้องสมุด)
ประเด็นของฉันคืออะไร ถ้าคุณเห็นว่ามีอาการดุนคงที่ที่จะทำงานapt-get autoremove
และคุณเปลี่ยนไปaptitude
คุณอาจจะตกใจเมื่อคุณลองติดตั้งบางอย่างเป็นครั้งแรก aptitude
ทันทีจะพยายามลบเด็กกำพร้าเหล่านั้นทั้งหมด โดยทั่วไปแล้วจะไม่เป็นไร (พวกเขาเป็นเด็กกำพร้าหลังจากทั้งหมดและไม่จำเป็น) แต่มีกรณีหนึ่งที่มีความซับซ้อน แพคเกจ meta-package บนเดสก์ท็อปทั้งหมดเกี่ยวข้องกับการพึ่งพาที่ซับซ้อนซึ่งแต่ละโปรแกรมถูกดึงขึ้นอยู่กับการพึ่งพาของ wrapper แพ็คเกจเสมือน ตัวอย่างเช่นหากคุณติดตั้ง Gnome ไว้เนื่องจากคุณติดตั้งgnome
แพคเกจโปรแกรมเดสก์ท็อปปกติทั้งหมดของคุณจะถูกติดตั้งเป็นการอ้างอิง หากคุณถอนการติดตั้งโปรแกรมใดโปรแกรมหนึ่งเหล่านี้ (เช่น Ekiga หรือ Gedit) คุณก็จะได้เห็นaptitude
ควรลบส่วนที่เหลือของเดสก์ท็อปของคุณด้วย โปรดทราบว่าaptitude
มักจะถามก่อนที่จะลบสิ่งต่าง ๆ ออกไป แต่ผู้คนมักป้อน 'Y' โดยไม่อ่าน จากประสบการณ์ของฉันนี่เป็นคำร้องเรียน / ความสับสนที่พบบ่อยที่สุดสำหรับผู้ที่เพิ่งเริ่มใช้ Debian
คำแนะนำทั่วไปสองประการ:
aptitude
หรือapt-get
อย่างระมัดระวังก่อนที่จะบอกว่าใช่อะไรaptitude -s safe-upgrade
ธงเป็นเพื่อนของคุณaptitude -s install foo
-s|--simulate
มันบอกว่าในรายชื่อผู้รับจดหมายเดเบียนเมื่อหลายปีก่อนว่าการเปลี่ยนจาก apt-get เป็น aptitude นั้นมีความเสี่ยง นี่คือสองรุ่น Debian (พูด 10 ปี) ที่ผ่านมา ดูเหมือนว่าปัญหาทั้งหมดจะได้รับการแก้ไขในตอนนี้และแน่นอนว่าฉันไม่เคยเห็นปัญหาเกี่ยวกับ Debian หรือ Ubuntu
apt-get
aptitude
เมื่อก่อนพวกเขาจัดการฟังก์ชั่นสำคัญมากมายแตกต่างกันมาก เมื่อเวลาผ่านไปพวกเขาก็มีความคล้ายคลึงกันมากขึ้นและaptitude
มีขนาดใหญ่ขึ้น สำหรับ 90% ของคดีในตอนนี้ไม่น่าจะมีปัญหาถ้าคุณเปลี่ยน ดูโพสต์ของฉันสำหรับกรณีขอบหนึ่ง
aptitude
ฉันยังพูดไปข้างหน้าและการใช้งาน มีการจัดการที่ดีกว่าการพึ่งพา
Aptitude
apt-get
สิ่งนี้จะช่วยรักษาจำนวนแพ็คเกจเด็กกำพร้าต่ำ
ผมเคยอ่านในขณะที่ที่ผ่านมาว่าaptitude
มีขั้นตอนวิธีการอัพเกรด DIST apt-get
ที่ดีขึ้นเมื่อเทียบกับ แต่นั่นไม่ค่อยเป็นคุณสมบัตินักฆ่าเนื่องจากไม่ได้ใช้บ่อยในช่วงเวลาชีวิตของระบบ
นอกจากนี้คุณจะมีสิ่งที่รวมเป็นหนึ่งมากขึ้นในเครื่องมือเดียว แทนที่จะจดจำเมื่อมีการโทรapt-get
, apt-cache
หรือdpkg
และสวิทช์ที่ฉันใช้ความถนัดและได้รับสิ่งที่ส่วนใหญ่ทำ
สำหรับภาวะแทรกซ้อนเมื่อเปลี่ยน "กลาง": ฉันจำไม่ได้ว่ามีเมื่อฉันทำมัน
พวกเขาไม่ใช่แค่อินเทอร์เฟซอื่นกับแบ็กเอนด์เดียวกันหรือไม่?
aptitude
เป็นอินเตอร์เฟซ featureful เพิ่มเติม ...
dpkg
แล้ว แต่dpkg
เพิ่งติดตั้งแพ็คเกจ; เป็นส่วนหน้าซึ่งรับผิดชอบการค้นหาความละเอียดในการอ้างอิงและการดาวน์โหลด
จากประสบการณ์ของฉันพวกเขามีวิธีต่าง ๆ ในการตรึงเวอร์ชันของแพ็คเกจ ในกรณีของฉันฉันบอกความสามารถในการล็อคแพ็คเกจบางอย่างโดยสมมติว่าฉันปลอดภัยจากการอัพเดทในอนาคต ฉันผิดไป; ตัวจัดการอัพเดตที่กำหนดเวลาไว้ cron ซึ่งใช้ apt-get จะดำเนินการอัพเกรดเป็นความกลัวของฉัน
Drats ขณะที่ฉันกำลังเขียนสิ่งนี้ฉัน googled และพบว่าข้อผิดพลาด ( # 557580ความถนัดไม่เชื่อฟังหมุดในการตั้งค่า. / / *) ได้รับการแก้ไขแล้ว!
ฉันใช้ทั้ง apt-get และ aptitude โดยไม่มีปัญหา: ฉันมีคำถามเดียวกัน ... ทำไมผู้คนถึงพูดแบบนี้ ??? : D
ไปบนและไม่ต้องกังวล: ความถนัดเป็นเพียงข้อความ GUI สำหรับ apt-get ที่คุณยังสามารถใช้เป็นโปรแกรมบรรทัดคำสั่งเช่นเป็นเช่นเดียวกับapt-get install foo
aptitude install foo
ความนับถือ
apt-get
ยังให้การลบอัตโนมัติของแพ็คเกจที่ติดตั้งเป็นการอ้างอิงเท่านั้น ความแตกต่างที่เหลืออยู่ในเรื่องนั้นคือการaptitude
ลบการอ้างอิงทันที (ตามความเหมาะสม) แต่apt-get
จะกระตุ้นให้คุณรันคำสั่งapt-get autoremove
เท่านั้น แต่พวกเขาทั้งสองติดตามการอ้างอิงด้วยวิธีเดียวกันในขณะนี้ พวกเขายังคงแตกต่างกันอย่างไรก็ตามในการจัดการการพึ่งพาที่ซับซ้อนและกรณีขอบ (การติดตั้งหรือการลบที่ซับซ้อนมาก) แต่สำหรับคนส่วนใหญ่และสถานการณ์ส่วนใหญ่พวกเขาทำงานเหมือนเดิมในตอนนี้
aptitude
จะลบออกทันที แต่จะแจ้งให้คุณลบออกโดยการป้อนคำสั่งapt-get
apt-get autoremove
โดยทั่วไปแล้วพวกเขาจะต้องการลบรายการเดียวกัน ดูลิงค์นี้สำหรับกรณีที่ซับซ้อนที่พวกเขาไม่เห็นด้วยกับ: ฟอรัม.debian.net/viewtopic.php?f=10&t=49589&start=0