Відповіді:
apt-get і здатність - це різні інтерфейси користувача, які є частиною однієї і тієї ж системи управління пакетами, APT, розширеного інструменту упаковки . Наприклад, обидва конфігуруються за допомогою /etc/apt/apt.confобох файлів та форматів для представлення стану пакету, а також однакового файлового простору для зберігання завантажених файлів .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негайно спробуємо видалити всіх цих сиріт. Взагалі, це буде добре (адже вони - сироти, і не потрібно), але є один складний випадок. Усі настільні метапакети містять складний ланцюг залежностей, де кожна окрема програма втягується як залежність від віртуальної обгортки пакунків. Наприклад, якщо у вас встановлений 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