Является ли aptitude по-прежнему выше, чем apt-get?


191

Когда я впервые начал работать с Ubuntu, я использовал aptitude«in-thing» с некоторыми заявленными улучшениями apt-get. Правильно ли я говорю, что apt-getтеперь «догнал» aptitude, и это мало что меняет, что используется (хотя предпочтительнее выбрать один или другой и придерживаться его)?

Более того, с aptitudeнабором, который нужно удалить из установки Ubuntu по умолчанию, все должны вернуться к этому apt-get, особенно когда направляют новых пользователей, заинтересованных в CLI?


1
прохладные дети сегодня используют aptвместо любого из тех , кто: itsfoss.com/apt-vs-apt-get-difference
Tatsu

Ответы:


131

Насколько я вижу, в 10.04 основные различия между aptitude и apt-get:

  1. aptitudeдобавляет явные флаги для каждого пакета, указывающие, был ли пакет автоматически установлен для удовлетворения зависимости: вы можете манипулировать этими флагами ( aptitude markautoили aptitude unmarkauto), чтобы изменить способ, которым aptitude обрабатывает пакет.

    apt-getотслеживает ту же информацию, но не будет отображать ее явно. apt-markможет использоваться для манипулирования флагами.

  2. aptitudeбудет предлагать удалять неиспользуемые пакеты каждый раз, когда вы удаляете установленный пакет, тогда как apt-getбудет делать это только в случае явного запроса apt-get autoremoveили указания --auto-remove.

  3. aptitudeдействует как единый интерфейс командной строки для большинства функций в обоих apt-getи apt-cache. Примечание : По состоянию на 16.04, есть aptкоманда , которая включает в себя наиболее часто используемые команды из apt-getи apt-cacheи несколько дополнительных функций.

  4. В отличие от apt-cache«search», aptitudeвывод «search» также показывает установленное / удаленное / очищенное состояние пакета (плюс собственные флаги состояния aptitude). Кроме того, выходные данные «install» отмечают, какие пакеты устанавливаются для удовлетворения зависимости, а какие удаляются из-за неиспользования.

  5. aptitude имеет (только текстовый) интерактивный интерфейс.

Я лично использую только aptitudeдля управления пакетами командной строки (и я никогда не использую текстовый интерфейс); Я считаю его вывод более читабельным, чем apt-get/ apt-cache.

Однако, если aptitudeон больше не будет стандартом в Ubuntu, нет другого выбора, кроме как использовать apt-getв инструкциях и инструкциях.

(Лично я довольно разочарован, увидев, что это исчезнет в 10.10; тем более, что улучшения aptitude apt-getв основном связаны с удобством использования. Я думаю, они считают, что те, кто знаком с командной строкой, знают, как вернуть aptitude, и тем, кто не пользуется командной строкой, все равно ...)


10
aptitude search'es по именам пакетов, apt-cache по именам пакетов + описание (нам просто нужно начать с каждого sudo apt-get install aptitude
руководства

3
2. Однако apt-get сообщит вам, что есть неиспользуемые пакеты и что вы можете удалить их apt-get autoremove.
2010 г.

2
Одним из недостатков aptitude является невозможность рассмотреть пиннинг, как это делает apt-get
txwikinger

4
Aptitude правильно читает /etc/apt/preferences(и закрепляет в нем), но в настоящее время игнорирует /etc/apt/preferences.d/. Это известная ошибка, поэтому есть надежда, что она скоро будет исправлена.
Риккардо Мурри

3
Склонность имеет возможность извлечения изменений легко: aptitude changelog package-name. Я не знаю о такой функции в apt-get.
Лекенштейн

21

Я полагаю, это вопрос личного выбора. Я считаю, что ввод текста aptitude searchимеет для меня больше смысла apt-cache search, и мне нравится, что он говорит мне, какие пакеты я установил прямо в результатах поиска, вместо того, чтобы запускать dpkg -l.


2
+1 Согласился с возможностью увидеть, установлено ли приложение во время поиска, очень удобно. Хотя я нахожу, что поиск в apt-cache намного быстрее, чем поиск в aptitude.
Марк Дэвидсон

Я использую двухбуквенный псевдоним bash для поиска в apt-cache, или, вероятно, я бы тоже использовал его aptitude search.
Белаква

Я заметил, что apt-getпоиск немного более тщателен, чем aptitude. Последний, кажется, смотрит только на имя пакета, в то время как первый также ищет описания, я думаю. например попробуйте поискать build-essential.
Sparhawk

13

Ранее apt-get не управлял зависимостями должным образом и поэтому заставлял потерянные зависимости оставаться в системе даже после удаления пакета, который их использовал - это уже не так, чтобы удалить потерянные зависимости

sudo apt-get autoremove

aptitude всегда делал это правильно и лучше отслеживал зависимости, но теперь оба менеджера пакетов выполняют свою работу.

В Ubuntu лучше использовать apt-get, потому что он поддерживается и одобрен компанией, в Debian я бы использовал aptitude


2
Последнее утверждение не является точным. aptitudeподдерживается в Ubuntu и работает по умолчанию. В этом отношении нет никакой разницы между Ubuntu и Debian.
loevborg

3
Он удаляется из установки по умолчанию в 10.10
kashif

1
По моему опыту, aptitudeвсегда было хуже в отслеживании установленных зависимостей. Он имел тенденцию удалять несвязанные из них при удалении программы и заканчивал тем, что нарушал другие программы в процессе ...
Изката

Что это эквивалентно apt-get autoremoveс aptitude? У меня есть старые ядра, которые apt-get autoremoveпредлагают мне удалить, но я не вижу способа их удалить aptitude.
Алексей

1
@ Алексей Вы можете использовать aptitude remove '~g'. ( Источник ) Обратите внимание, что aptitudeавтоматически предложит удалить неиспользуемые зависимости при удалении пакетов с ним.
nyuszika7h

6

В дополнение к другим ответам, также стоит отметить, что он apt-getчасто падает на первый план для простых операций, и у него нет возможности обрабатывать несоответствия версий зависимостей или сломанные пакеты (хотя он утверждает, что сломанные пакеты можно исправить с помощью apt-get install -f, я буквально никогда не видел эту работу за всю свою жизнь).

По какой-то причине я все еще пользуюсь apt-getпо умолчанию, но когда возникают проблемы, я обычно решаю их с помощью aptitude, что, кажется, никогда не сталкивается apt-getс многочисленными проблемами.


У меня также есть аналогичный опыт в разрешении конфликтов, aptitudeв этом смысле это лучшая альтернатива.
Volkan Yazıcı

1
Для справки, я только что увидел, как apt-get install -f исправляет мою систему. У aptitude возникли проблемы, это исправило их, а затем первое, что я сделал, было: apt установил aptitude :) Выбор - хорошая вещь (тм)
teknopaul

3

Я бы сказал, что в моем личном опыте aptitude и apt-get имеют очень схожую функциональность.

Основное различие, которое приходит на ум и может повлиять на выбор пользователей, состоит в том, что aptitude предлагает интерфейс ncurses и предлагает варианты безопасного и полного обновления, которые могут пригодиться.

Лично я всегда использую apt-get и рекомендую, чтобы новые пользователи также использовали apt-get. Как вы уже сказали, если установить aptitude для удаления из Ubuntu по умолчанию, эта рекомендация все же кажется лучшей. Как будто они хотят использовать aptitude, им нужно знать, как использовать apt-get для установки aptitude, если они этого хотят :)


Не могли бы вы объяснить, что такое интерфейс ncurses, пожалуйста?
8128

@fluteflute: ncurses - это библиотека, используемая для реализации текстового пользовательского интерфейса. ru.wikipedia.org/wiki/Ncurses
dierre

1

На сервере я предпочитаю Atitude, потому что он поставляется с довольно хорошим интерфейсом для проверки журналов изменений пакетов, выборочных обновлений и тому подобного. apt-get работает быстрее, и я всегда использую его, если просто хочу обновить все без особых хлопот.

Используя наш сайт, вы подтверждаете, что прочитали и поняли нашу Политику в отношении файлов cookie и Политику конфиденциальности.
Licensed under cc by-sa 3.0 with attribution required.