8

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

7 ответов7

8

apt-get и aptitude - это разные пользовательские интерфейсы, которые являются частью одной и той же системы управления пакетами, APT, Advanced Packaging Tool. Например, оба настроены с использованием /etc/apt/apt.conf , оба используют одно и то же файловое пространство и форматы для представления состояния пакета и одно и то же файловое пространство для хранения загруженных .debs.

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

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 на aptitude было рискованным. Это две версии Debian (скажем, 10 лет) назад. Все эти проблемы, кажется, уже решены, и, конечно, я не видел проблем ни в Debian, ни в Ubuntu.

2

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

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

Что касается осложнений при переключении "посередине": я не помню, чтобы они были, когда я это делал.

1

Разве они не просто другой интерфейс к одному и тому же бэкэнду?

1

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

Дратс, когда я писал это, я погуглил и обнаружил, что ошибка (# 557580 aptitude не подчиняется штифтам в preferences.d/*) уже исправлена!

-1

Я использую apt-get и aptitude без проблем: у меня один и тот же вопрос ...Почему люди так говорят ??? : D

Продолжайте, и не беспокойтесь: aptitude - это просто текстовый интерфейс для apt-get, который вы можете использовать даже в качестве приложения командной строки, например, apt-get install foo - это то же самое, что aptitude install foo .

С уважением

Всё ещё ищете ответ? Посмотрите другие вопросы с метками .