apt VS aptitude что лучше

Сравниваем Apt и Aptitude в Ubuntu Linux

В чем отличия между двумя самыми популярными менеджерами управления пакетами Aptitude и Apt-get, вы задумывались над этим? Ниже я рассмотрю отличия/плюсы и минусы.

Сравниваем Apt с Aptitude

Aptitude и Apt-get это два самых популярных инструменты для управления пакетами. Оба позволяют делать все необходимые манипуляции(установка, удаление и обновление, разрешение зависимостей, поиск пакетов и многое другое). Но все таки между ними двумя есть различия, которые заставляют пользователей выбирать то или иное приложение. В этой статье мы и рассмотрим все отличия между этими инструментами.

Что такое Apt

Apt или Advanced Packaging Tool - это свободная программа с открытым исходным кодом, которая позволяет устанавливать и удалять программное обеспечение. Изначально она была разработана в рамках проекта Debian для работы с .deb пакетами, но потом в нее добавили совместимость с пакетами rpm.

Apt - всего навсего лишь утилита командной строки. Каждый запуск программы для установки пакета приводит к анализу сохраненного списка источников пакетов, который находится в /etc/apt/sources.list. Программа скачивает и устанавливает сам пакет вместе со всеми его зависимостями. Вся работа выполняется автоматически, пользователю достаточно только ввести имя пакета.

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

Что такое Aptitude

Aptitude - это оболочка для APT, которая добавляет пользовательский интерфейс, и много дополнительной функциональности, например поиска пакета в интерактивном режиме, а также моментальная его установка или удаление.

Хотя утилита разработана для Debian, она может существенно расширить возможности менеджеров пакетов RPM дистрибутивов.

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

В целом Aptitude менеджер пакетов более высокого уровня. Он упрощает многие детали низкого уровня и может работать в интерактивном пользовательском интерфейсе или в режиме командной строки

В чем разница между APT и Aptitude

  • Помимо основных отличий в том что Aptitude это менеджер пакетов высокого уровня, а APT - более низкого, и может быть использован с другими пакетными менеджерами высокого уровня. Но есть и другие моменты, разделяющие эти два менеджеры пакетов.
  • Aptitude имеет более обширный функционал чем apt-get и к тому же интегрирует возможности apt-get, apt-mark и apt-cache. apt-get обрабатывает установку, обновление пакетов, расширение зависимостей, а Aptitude реализует все возможности интерфейса пользователя, а также функции поиска и маркировки пакетов.
  • Apt-get не хватает пользовательского интерфейса, в то время. Aptitude имеет только текстовый и интерактивный пользовательский интерфейс.
  • Возможности Apt-get ограничены возможностями командной строки, в то время как Aptitude - инструмент более высокого уровня, с текстовым интерактивном интерфейсом, а а также возможностью работы через командную строку.
  • Aptitude позволяет лучшее управлять пакетами чем в apt-get.
  • Во многих ситуациях связанных с установкой, удалением и разрешением конфликтов. Aptitude заслуженно используется многими пользователями, в место apt-get в таких ситуациях:
  • При удалении любого установленного пакета. Aptitude автоматически удаляет неиспользуемые пакеты и все их зависимости. Apt-get удаляет только то что было указанно в команде. Для полного удаления всех зависимостей нужно  указать опцию --autoremove или использовать команду apt-get autoremove
  • Aptitude может показать вам почему зачем установлен тот или иной пакет с помощью команд why и why-not. Передав Aptitude команду why и имя пакета, вы можете узнать почему установлен этот пакет, какие пакеты зависят от него и от каких пакетов зависит он сам:
$ aptitude why yaws-wiki
i   doc-base  Suggests   dhelp | dwww | doc-central | yelp | khelpcenter4
p   dwww      Depends    apache2 | httpd-cgi
p   yaws      Provides   httpd-cgi
p   yaws      Suggests   yaws-wiki
  • В этом примере мы посмотрели почему установлен пакет yaws-wiki. От него зависит yaws, которому также нужен httpd-cgi, зависящий от dwww, есть один рекомендованный пакет doc-base. Эта функция отсутствует в apt-get.
  • Для решения конфликтов при установке и удалении пакетов. Aptitude предоставляет возможные решения при возникновении конфликтов во время установки пакетов.
  • Aptitude обеспечивает мощный поиск, с помощью которого можно найти любой нужный пакет не только в системе, но и по репозиториях. В Apt-get есть свой вариант поиска с помощью утилиты apt-cache, но в aptitude все делается намного проще.

Сравнение поиска в Apt-get и Aptitude

$ aptitude search '~npython2.7 ~d2.7'
p   idle-python2.7                   - IDE for Python (v2.7) using Tkinter       
i   libpython2.7                     - Shared Python runtime library (version 2.7
p   libpython2.7:i386                - Shared Python runtime library (version 2.7
p   libpython2.7-dbg                 - Debug Build of the Python Interpreter (ver
p   libpython2.7-dbg:i386            - Debug Build of the Python Interpreter (ver
i A libpython2.7-dev                 - Header files and a static library for Pyth
p   libpython2.7-dev:i386            - Header files and a static library for Pyth

Опция -n задает поиск по имени пакета, а -d - по описанию. Вот общий синтаксис этой команды:

$ aptitude search '?name(python2.7) ?description(2.7)'

Также можно использовать другие опции:

  • -i или ?installed() - поиск только установленных пакетов
  • -U или ?Upgradable - отобразить пакеты нуждающиеся в обновлении
  • -E или ?Essential() - установленные или не установленные но важные пакеты
  • ?provides() - пакеты реализующие определенную функцию

Например найдем все пакеты реализующие smtp:

$ aptitude search '?provides(smtp)'
p   libghc-smtpclient-dev            - Simple Haskell SMTP client library        
p   libghc-smtpclient-dev:i386       - Simple Haskell SMTP client library        
p   libghc-smtpclient-prof           - Simple Haskell SMTP client library; profil
p   libghc-smtpclient-prof:i386      - Simple Haskell SMTP client library; profil
p   syslog-ng-mod-smtp               - Enhanced system logging daemon (SMTP plugi
p   syslog-ng-mod-smtp:i386          - Enhanced system logging daemon (SMTP plugi

Выводы

Таким образом, в большинстве случаев Aptitude сохраняет почти такой же синтаксис как и в Apt-get, поэтому новым пользователям будет намного проще перейти на этот инструмент. К тому же в Aptitude интегрированы много очень полезных и мощных функций, что и делает ему такую популярность. Так что первым делом, когда завершится установка Ubuntu 16.04 не забудьте установить Aptitude. Если вы нашли другие различия, не упомянутые в этой статье, напишите о них в комментариях.

Лицензия: CC BY-SA 4.0

Похожие материалы:
Помогла ли вам статья?
Да Нет
Статья оказалась полезной для 0 человек
avatar