Чи може це спричинити проблеми з переходом від apt-get до здатності?


8

Я думав про перехід на здатність, але чув, як люди говорять: "якщо ви вже використовуєте apt-get, вам слід почекати, поки ваша наступна установка переключиться". Чому люди говорять про це? Які проблеми (якщо такі є) можуть викликати це?

Відповіді:


8

apt-get і здатність - це різні інтерфейси користувача, які є частиною однієї і тієї ж системи управління пакетами, APT, розширеного інструменту упаковки . Наприклад, обидва конфігуруються за допомогою /etc/apt/apt.confобох файлів та форматів для представлення стану пакету, а також однакового файлового простору для зберігання завантажених файлів .debs.

Як вони відрізняються , так це їх внутрішня система правил для представлення потенційних конфліктів між пакетом, як вирішити їх (скажімо , під час apt-get dist-upgradeVS. aptitude full-upgrade), і як виразити це при взаємодії з користувачем. Взагалі кажучи, обидва можуть робити неправильну справу в складних ситуаціях, але apt-get набагато частіше помилиться, ніж спритність.


2
Чудова, чітка відповідь. Ще однією деталлю є те, як / коли вони усувають автоматично встановлені залежності. aptitudeвидалить їх відразу, але apt-getлише запропонує видалити їх, ввівши команду apt-get autoremove. Загалом, вони захочуть видалити ті самі предмети. Перегляньте це посилання, однак, про складний випадок, коли вони не погодилися з цього питання: forums.debian.net/viewtopic.php?f=10&t=49589&start=0
Телемах

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негайно спробуємо видалити всіх цих сиріт. Взагалі, це буде добре (адже вони - сироти, і не потрібно), але є один складний випадок. Усі настільні метапакети містять складний ланцюг залежностей, де кожна окрема програма втягується як залежність від віртуальної обгортки пакунків. Наприклад, якщо у вас встановлений Gnome, оскільки ви встановили gnomeпакунок, то всі ваші звичайні настільні програми були встановлені як залежності. Якщо ви видалили одну з цих програм (наприклад, Ekiga або Gedit), тоді в очахaptitudeрешту робочого столу теж слід видалити. Зауважте, що aptitude завжди запитує перед тим, як видалити речі, але люди часто вводять "Y", не читаючи. На мій досвід, це найпоширеніша скарга / плутанина для людей, які не знайомі з Debian.

Дві загальні поради:

  1. Завжди читайте результат aptitudeабо apt-getуважно, перш ніж говорити "так".
  2. Пам’ятайте, що ви завжди можете робити сухий запуск, використовуючи aptitude -s safe-upgradeабо aptitude -s install foo. -s|--simulateПрапор є вашим другом.

4

Ще багато років тому у списку розсилки Debian було сказано, що перехід від apt-get на підхожість ризикований. Це дві версії Debian (скажімо, 10 років) тому. Усі ці проблеми, здається, зараз розроблені, і, звичайно, я не бачив проблем ні на Debian, ні на Ubuntu.


1
Чи є у вас посилання на пост розсилки?
Матвій

Метью, ти уявляєш, що я зберігаю тут ідеально проіндексований архів усього списку розсилки debian-користувачів? Коли з вищесказаного зрозуміло, що я навіть навіть не пам’ятаю рік?
КарлФ

@Matthew: деякий час назад (Sarge або рано Etch), там було багато людей турбуються про перехід від apt-getдо aptitude. Тоді вони виконували багато важливих функцій дуже по-різному. З часом вони стали набагато схожішими і aptitudeдозріли тонною. У 90% випадків зараз не повинно виникнути проблем при переключенні. Дивіться мій пост для одного краєвого випадку.
Телемах

2

Я б також сказав, що вперед і користуйся aptitude.
Aptitudeмає краще управління залежністю, ніж apt-get. Це допоможе зберегти кількість осиротілих пакетів низькими.
Я читав деякий час тому, що aptitudeмає кращий алгоритм оновлення dist в порівнянні з apt-get. Але це навряд чи є вбивчою особливістю, оскільки вона часто не використовується в житті системи.

Крім того, у вас буде більше речей, об’єднаних в один інструмент. Замість того , щоб згадати , коли дзвонити apt-get, apt-cacheабо dpkgі з якою перемикачі я просто використовувати здібності і отримати більшість речей зробити.

Що стосується ускладнень при переключенні "посередині": я не пам'ятаю, щоб у мене колись було.


1

Вони не просто інший інтерфейс до одного і того ж бекенда?


2
aptitudeє більш функціональним інтерфейсом ...
шарлатаний кіхот

Це може бути. Але інтерфейс з більшою кількістю функцій не обов'язково означає інший фон.
Свиш

2
ні, ти маєш рацію, обидва є передніми dpkg. але dpkgпросто встановлює пакети; це передні місця, які відповідають за пошук, вирішення залежності та завантаження.
крякав кіхот

але пошук, завантаження та вирішення залежностей нічого не порушують. або якщо це станеться, це було б дуже дивно на мою думку ...
Свиш

2
щойно помітив ваш останній коментар. майте на увазі, що саме фронтенди вирішують, що встановити; dpkg просто робить установку. якщо щось зламається, це зазвичай тому, що роздільна здатність залежності не вдалася або через те, що користувач вимкнув роздільну здатність залежності (наприклад, з опцією --force ).
квакш-кіхот

1

З мого досвіду, вони мають інший спосіб закріплення версій пакета. У моєму випадку я говорив про здатність блокувати певні пакети, припускаючи, що буду в безпеці від майбутніх оновлень. Я помилявся; менеджер оновлень, призначений за допомогою планових крон, який використовує apt-get, продовжує оновити його до мого переживання.

Дратс, коли я писав це, я погуглив і дізнався, що помилка ( № 557580 здатність не підкоряється штифтам у preferences.d / *) вже виправлена!


-1

Я використовую як apt-get, так і здатність без жодних проблем: у мене те саме питання ... Чому люди говорять про це ??? : D

Продовжуйте, і не хвилюйтеся: здатність - це лише текст-gui для apt-get, який ви навіть можете використовувати як додаток командного рядка, наприклад, apt-get install fooце те саме, що aptitude install foo.

З повагою


Я не вірю, що вони однакові. Якщо все не змінилося, здатність буде проводити більше відстеження залежностей та видаляти будь-які пакунки, які він автоматично встановив, тоді як apt-get не буде. Тобто, якщо foo залежить від bar і ви встановите та видалите foo за допомогою apt-get, bar залишиться у вашій системі. Якщо ви зробите те ж саме зі здатністю, це не буде.
Вільям Перселл

Ви маєте рацію: дивіться коментарі ~ quack нижче.
dag729

@William, @ dag729: Поточні версії apt-getтакож пропонують автоматичне видалення пакунків, встановлених лише як залежності. Залишилася різниця в цьому відношенні полягає в тому, що aptitudeмиттєво знімає залежності (у відповідних випадках), але apt-getлише пропонує вам виконати команду apt-get autoremove. Але вони обидва відслідковують залежності однаково. Вони все ще відрізняються, однак, в обробці складних залежностей та крайніх випадків (дуже складні установки або видалення), але для більшості людей та більшості ситуацій вони працюють так само і зараз.
Телемах
Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.