ฉันคิดว่าจะเปลี่ยนไปใช้ความถนัด แต่ฉันได้ยินคนพูดว่า "ถ้าคุณใช้ฉลาดอยู่แล้วคุณควรรอจนกว่าการติดตั้งครั้งต่อไปของคุณจะเปลี่ยน" ทำไมผู้คนถึงพูดอย่างนี้? มีปัญหาอะไรบ้าง (ถ้ามี) สาเหตุนี้?
ฉันคิดว่าจะเปลี่ยนไปใช้ความถนัด แต่ฉันได้ยินคนพูดว่า "ถ้าคุณใช้ฉลาดอยู่แล้วคุณควรรอจนกว่าการติดตั้งครั้งต่อไปของคุณจะเปลี่ยน" ทำไมผู้คนถึงพูดอย่างนี้? มีปัญหาอะไรบ้าง (ถ้ามี) สาเหตุนี้?
คำตอบ:
apt-get และความถนัดที่แตกต่างกันมี UIs ที่เป็นส่วนหนึ่งของระบบการจัดการแพคเกจเดียวกันAPT ขั้นสูงบรรจุภัณฑ์เครื่องมือ ตัวอย่างเช่นทั้งสองมีการกำหนดค่าการใช้/etc/apt/apt.confทั้งสองใช้ filespace และรูปแบบเดียวกันเพื่อเป็นตัวแทนของรัฐแพคเกจและ filespace เดียวกันในการจัดเก็บ .debs ดาวน์โหลด
ความแตกต่างของพวกเขาคือระบบกฎภายในเพื่อแสดงถึงความขัดแย้งที่อาจเกิดขึ้นระหว่างแพ็คเกจวิธีแก้ไข (พูดระหว่างapt-get dist-upgradevs. 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 fooaptitude install foo
ความนับถือ
apt-getยังให้การลบอัตโนมัติของแพ็คเกจที่ติดตั้งเป็นการอ้างอิงเท่านั้น ความแตกต่างที่เหลืออยู่ในเรื่องนั้นคือการaptitudeลบการอ้างอิงทันที (ตามความเหมาะสม) แต่apt-getจะกระตุ้นให้คุณรันคำสั่งapt-get autoremoveเท่านั้น แต่พวกเขาทั้งสองติดตามการอ้างอิงด้วยวิธีเดียวกันในขณะนี้ พวกเขายังคงแตกต่างกันอย่างไรก็ตามในการจัดการการพึ่งพาที่ซับซ้อนและกรณีขอบ (การติดตั้งหรือการลบที่ซับซ้อนมาก) แต่สำหรับคนส่วนใหญ่และสถานการณ์ส่วนใหญ่พวกเขาทำงานเหมือนเดิมในตอนนี้
aptitudeจะลบออกทันที แต่จะแจ้งให้คุณลบออกโดยการป้อนคำสั่งapt-getapt-get autoremoveโดยทั่วไปแล้วพวกเขาจะต้องการลบรายการเดียวกัน ดูลิงค์นี้สำหรับกรณีที่ซับซ้อนที่พวกเขาไม่เห็นด้วยกับ: ฟอรัม.debian.net/viewtopic.php?f=10&t=49589&start=0