Ответы:
apt-get и aptitude - это разные пользовательские интерфейсы, которые являются частью одной и той же системы управления пакетами, APT, Advanced Packaging Tool . Например, оба настроены с использованием /etc/apt/apt.conf, оба используют одно и то же файловое пространство и форматы для представления состояния пакета, и одно и то же файловое пространство для хранения загруженных .debs.
Чем они отличаются, так это их внутренней системой правил для представления потенциальных конфликтов между пакетами, как их разрешать (скажем, во время apt-get dist-upgradeпротив aptitude full-upgrade) и как выражать их при взаимодействии с пользователем. Вообще говоря, оба могут делать неправильные вещи в сложных ситуациях, но apt-get гораздо чаще ошибается, чем aptitude.
Много полезных советов уже здесь, но позвольте мне добавить одну вещь, которую никто не упомянул. Если вы решите переключиться, вы можете запустить эту команду, в зависимости от того, с чем вы работали 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 на aptitude было рискованным. Это две версии 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просто устанавливает пакеты; это внешние интерфейсы, которые отвечают за поиск, разрешение зависимостей и загрузку.
По моему опыту, у них есть другой способ закрепления версий пакетов. В моем случае я сказал aptitude заблокировать определенные пакеты, предполагая, что буду в безопасности от будущих обновлений. Я был неправ; диспетчер обновлений cron, который использует apt-get, продолжает обновлять его до моего ужаса.
Дратс, когда я писал это, я погуглил и обнаружил, что ошибка ( # 557580 aptitude не подчиняется пинам в settings.d / *) уже исправлена!
Я использую apt-get и aptitude без проблем: у меня один и тот же вопрос ... Почему люди так говорят ??? : D
Продолжайте, и не беспокойтесь: aptitude - это просто текстовый интерфейс для 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