Відповіді:
apt-get і здатність - це різні інтерфейси користувача, які є частиною однієї і тієї ж системи управління пакетами, APT, розширеного інструменту упаковки . Наприклад, обидва конфігуруються за допомогою /etc/apt/apt.conf
обох файлів та форматів для представлення стану пакету, а також однакового файлового простору для зберігання завантажених файлів .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
негайно спробуємо видалити всіх цих сиріт. Взагалі, це буде добре (адже вони - сироти, і не потрібно), але є один складний випадок. Усі настільні метапакети містять складний ланцюг залежностей, де кожна окрема програма втягується як залежність від віртуальної обгортки пакунків. Наприклад, якщо у вас встановлений Gnome, оскільки ви встановили gnome
пакунок, то всі ваші звичайні настільні програми були встановлені як залежності. Якщо ви видалили одну з цих програм (наприклад, Ekiga або Gedit), тоді в очахaptitude
решту робочого столу теж слід видалити. Зауважте, що aptitude
завжди запитує перед тим, як видалити речі, але люди часто вводять "Y", не читаючи. На мій досвід, це найпоширеніша скарга / плутанина для людей, які не знайомі з Debian.
Дві загальні поради:
aptitude
або apt-get
уважно, перш ніж говорити "так".aptitude -s safe-upgrade
або aptitude -s install foo
. -s|--simulate
Прапор є вашим другом.Ще багато років тому у списку розсилки Debian було сказано, що перехід від apt-get на підхожість ризикований. Це дві версії Debian (скажімо, 10 років) тому. Усі ці проблеми, здається, зараз розроблені, і, звичайно, я не бачив проблем ні на Debian, ні на Ubuntu.
apt-get
до aptitude
. Тоді вони виконували багато важливих функцій дуже по-різному. З часом вони стали набагато схожішими і aptitude
дозріли тонною. У 90% випадків зараз не повинно виникнути проблем при переключенні. Дивіться мій пост для одного краєвого випадку.
Я б також сказав, що вперед і користуйся aptitude
.
Aptitude
має краще управління залежністю, ніж apt-get
. Це допоможе зберегти кількість осиротілих пакетів низькими.
Я читав деякий час тому, що aptitude
має кращий алгоритм оновлення dist в порівнянні з apt-get
. Але це навряд чи є вбивчою особливістю, оскільки вона часто не використовується в житті системи.
Крім того, у вас буде більше речей, об’єднаних в один інструмент. Замість того , щоб згадати , коли дзвонити apt-get
, apt-cache
або dpkg
і з якою перемикачі я просто використовувати здібності і отримати більшість речей зробити.
Що стосується ускладнень при переключенні "посередині": я не пам'ятаю, щоб у мене колись було.
Вони не просто інший інтерфейс до одного і того ж бекенда?
aptitude
є більш функціональним інтерфейсом ...
dpkg
. але dpkg
просто встановлює пакети; це передні місця, які відповідають за пошук, вирішення залежності та завантаження.
З мого досвіду, вони мають інший спосіб закріплення версій пакета. У моєму випадку я говорив про здатність блокувати певні пакети, припускаючи, що буду в безпеці від майбутніх оновлень. Я помилявся; менеджер оновлень, призначений за допомогою планових крон, який використовує apt-get, продовжує оновити його до мого переживання.
Дратс, коли я писав це, я погуглив і дізнався, що помилка ( № 557580 здатність не підкоряється штифтам у preferences.d / *) вже виправлена!
Я використовую як apt-get, так і здатність без жодних проблем: у мене те саме питання ... Чому люди говорять про це ??? : 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
. Загалом, вони захочуть видалити ті самі предмети. Перегляньте це посилання, однак, про складний випадок, коли вони не погодилися з цього питання: forums.debian.net/viewtopic.php?f=10&t=49589&start=0