มันจะทำให้เกิดปัญหาในการเปลี่ยนจาก apt-get เป็น aptitude หรือไม่?


8

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

คำตอบ:


8

apt-get และความถนัดที่แตกต่างกันมี UIs ที่เป็นส่วนหนึ่งของระบบการจัดการแพคเกจเดียวกันAPT ขั้นสูงบรรจุภัณฑ์เครื่องมือ ตัวอย่างเช่นทั้งสองมีการกำหนดค่าการใช้/etc/apt/apt.confทั้งสองใช้ filespace และรูปแบบเดียวกันเพื่อเป็นตัวแทนของรัฐแพคเกจและ filespace เดียวกันในการจัดเก็บ .debs ดาวน์โหลด

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


2
คำตอบที่ดีและชัดเจน รายละเอียดเพิ่มเติมหนึ่งคือวิธี / เมื่อพวกเขาเอาการอ้างอิงที่ติดตั้งโดยอัตโนมัติ aptitudeจะลบออกทันที แต่จะแจ้งให้คุณลบออกโดยการป้อนคำสั่งapt-get apt-get autoremoveโดยทั่วไปแล้วพวกเขาจะต้องการลบรายการเดียวกัน ดูลิงค์นี้สำหรับกรณีที่ซับซ้อนที่พวกเขาไม่เห็นด้วยกับ: ฟอรัม.debian.net/viewtopic.php?f=10&t=49589&start=0
Telemachus

5

คำแนะนำที่ดีมากมายอยู่ที่นี่แล้ว แต่ให้ฉันเพิ่มสิ่งหนึ่งที่ไม่มีใครพูดถึง หากคุณตัดสินใจที่จะเปลี่ยนคุณอาจต้องการเรียกใช้คำสั่งนี้ขึ้นอยู่กับสิ่งที่คุณเคยทำมาด้วย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

คำแนะนำทั่วไปสองประการ:

  1. ควรอ่านผลลัพธ์aptitudeหรือapt-getอย่างระมัดระวังก่อนที่จะบอกว่าใช่อะไร
  2. โปรดจำไว้ว่าคุณสามารถทำแห้งวิ่งใช้หรือaptitude -s safe-upgrade ธงเป็นเพื่อนของคุณaptitude -s install foo-s|--simulate

4

มันบอกว่าในรายชื่อผู้รับจดหมายเดเบียนเมื่อหลายปีก่อนว่าการเปลี่ยนจาก apt-get เป็น aptitude นั้นมีความเสี่ยง นี่คือสองรุ่น Debian (พูด 10 ปี) ที่ผ่านมา ดูเหมือนว่าปัญหาทั้งหมดจะได้รับการแก้ไขในตอนนี้และแน่นอนว่าฉันไม่เคยเห็นปัญหาเกี่ยวกับ Debian หรือ Ubuntu


1
คุณมีลิงค์ไปยังโพสต์รายชื่อผู้รับจดหมายหรือไม่?
แมทธิว

Matthew คุณคิดหรือไม่ว่าฉันเก็บไฟล์เก็บถาวรของดัชนีรายชื่อผู้รับจดหมายเดเบียนทั้งหมดไว้ที่นี่ เมื่อเป็นที่ชัดเจนจากด้านบนที่ฉันไม่จำแม้แต่ปี
CarlF

@ Matthew: ในขณะที่กลับ (หลีหรือต้นกัด) มีผู้คนจำนวนมากกังวลเกี่ยวกับการเปลี่ยนจากการapt-get aptitudeเมื่อก่อนพวกเขาจัดการฟังก์ชั่นสำคัญมากมายแตกต่างกันมาก เมื่อเวลาผ่านไปพวกเขาก็มีความคล้ายคลึงกันมากขึ้นและaptitudeมีขนาดใหญ่ขึ้น สำหรับ 90% ของคดีในตอนนี้ไม่น่าจะมีปัญหาถ้าคุณเปลี่ยน ดูโพสต์ของฉันสำหรับกรณีขอบหนึ่ง
Telemachus

2

aptitudeฉันยังพูดไปข้างหน้าและการใช้งาน มีการจัดการที่ดีกว่าการพึ่งพา
Aptitude apt-getสิ่งนี้จะช่วยรักษาจำนวนแพ็คเกจเด็กกำพร้าต่ำ
ผมเคยอ่านในขณะที่ที่ผ่านมาว่าaptitudeมีขั้นตอนวิธีการอัพเกรด DIST apt-getที่ดีขึ้นเมื่อเทียบกับ แต่นั่นไม่ค่อยเป็นคุณสมบัตินักฆ่าเนื่องจากไม่ได้ใช้บ่อยในช่วงเวลาชีวิตของระบบ

นอกจากนี้คุณจะมีสิ่งที่รวมเป็นหนึ่งมากขึ้นในเครื่องมือเดียว แทนที่จะจดจำเมื่อมีการโทรapt-get, apt-cacheหรือdpkgและสวิทช์ที่ฉันใช้ความถนัดและได้รับสิ่งที่ส่วนใหญ่ทำ

สำหรับภาวะแทรกซ้อนเมื่อเปลี่ยน "กลาง": ฉันจำไม่ได้ว่ามีเมื่อฉันทำมัน


1

พวกเขาไม่ใช่แค่อินเทอร์เฟซอื่นกับแบ็กเอนด์เดียวกันหรือไม่?


2
aptitudeเป็นอินเตอร์เฟซ featureful เพิ่มเติม ...
นักต้มตุ๋น Quixote

นั่นอาจเป็น แต่อินเทอร์เฟซที่มีคุณสมบัติเพิ่มเติมไม่ได้แปลว่าแบ็คเอนด์ต่างกัน
Svish

2
ไม่คุณพูดถูกทั้งคู่จบไปdpkgแล้ว แต่dpkgเพิ่งติดตั้งแพ็คเกจ; เป็นส่วนหน้าซึ่งรับผิดชอบการค้นหาความละเอียดในการอ้างอิงและการดาวน์โหลด
ต้มตุ๋น quixote

แต่การค้นหาการดาวน์โหลดและการแก้ปัญหาการพึ่งพาจะไม่ทำลายอะไรเลย หรือถ้ามันไม่ว่าจะเป็นเรื่องแปลกมากในความคิดของฉัน ...
Svish

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

1

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

Drats ขณะที่ฉันกำลังเขียนสิ่งนี้ฉัน googled และพบว่าข้อผิดพลาด ( # 557580ความถนัดไม่เชื่อฟังหมุดในการตั้งค่า. / / *) ได้รับการแก้ไขแล้ว!


-1

ฉันใช้ทั้ง apt-get และ aptitude โดยไม่มีปัญหา: ฉันมีคำถามเดียวกัน ... ทำไมผู้คนถึงพูดแบบนี้ ??? : D

ไปบนและไม่ต้องกังวล: ความถนัดเป็นเพียงข้อความ GUI สำหรับ apt-get ที่คุณยังสามารถใช้เป็นโปรแกรมบรรทัดคำสั่งเช่นเป็นเช่นเดียวกับapt-get install fooaptitude install foo

ความนับถือ


ฉันไม่เชื่อว่าพวกเขาเหมือนกัน ความถนัดจะทำการติดตามการพึ่งพามากขึ้นและลบแพ็คเกจใด ๆ ที่ติดตั้งโดยอัตโนมัติในขณะที่ความฉลาดจะไม่ได้รับ นั่นคือถ้า foo ขึ้นอยู่กับแถบและคุณติดตั้งและลบ foo ด้วย apt-get แถบจะยังคงอยู่ในระบบของคุณ หากคุณทำเช่นเดียวกันกับความถนัดก็จะไม่
วิลเลียม Pursell

คุณพูดถูก: ดูความเห็นของ ~ quack ด้านล่าง
dag729

@William, @ dag729: เวอร์ชันปัจจุบันapt-getยังให้การลบอัตโนมัติของแพ็คเกจที่ติดตั้งเป็นการอ้างอิงเท่านั้น ความแตกต่างที่เหลืออยู่ในเรื่องนั้นคือการaptitudeลบการอ้างอิงทันที (ตามความเหมาะสม) แต่apt-getจะกระตุ้นให้คุณรันคำสั่งapt-get autoremoveเท่านั้น แต่พวกเขาทั้งสองติดตามการอ้างอิงด้วยวิธีเดียวกันในขณะนี้ พวกเขายังคงแตกต่างกันอย่างไรก็ตามในการจัดการการพึ่งพาที่ซับซ้อนและกรณีขอบ (การติดตั้งหรือการลบที่ซับซ้อนมาก) แต่สำหรับคนส่วนใหญ่และสถานการณ์ส่วนใหญ่พวกเขาทำงานเหมือนเดิมในตอนนี้
Telemachus
โดยการใช้ไซต์ของเรา หมายความว่าคุณได้อ่านและทำความเข้าใจนโยบายคุกกี้และนโยบายความเป็นส่วนตัวของเราแล้ว
Licensed under cc by-sa 3.0 with attribution required.