Поиск по сайту:

Что такое APT и Aptitude? и в чем реальная разница между ними?


Aptitude и apt-get — два популярных инструмента для управления пакетами. Оба способны выполнять все виды действий с пакетами, включая установку, удаление, поиск и т. д. Но между обоими инструментами все же существуют различия, из-за которых пользователи предпочитают один другому. Каковы те различия, которые позволяют рассматривать эти два инструмента отдельно, является предметом этой статьи.

Что такое Апт

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

Apt — это целая командная строка без графического интерфейса. При каждом вызове из командной строки вместе с указанием имени устанавливаемого пакета он находит этот пакет в настроенном списке источников, указанном в '/etc/apt/sources.list', вместе со списком зависимостей. для этого пакета, сортирует их и автоматически устанавливает вместе с текущим пакетом, что позволяет пользователю не беспокоиться об установке зависимостей.

Он очень гибок, что позволяет пользователю легко управлять различными конфигурациями, например: добавлять любой новый источник для поиска пакетов, закреплять apt, т. е. отмечать любой пакет недоступным во время обновления системы, делая его текущую версию окончательной установленной версией, «умное» обновление, т. е. обновление наиболее важных пакетов и оставление наименее важных.

Что такое способности?

Aptitude — это интерфейс расширенного инструмента упаковки, который добавляет к функциям пользовательский интерфейс, позволяя пользователю в интерактивном режиме искать пакет, а также устанавливать или удалять его. Первоначально созданный для Debain, Aptitude расширяет свою функциональность и на дистрибутивы на основе RPM.

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

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

Если вы хотите узнать об использовании APT и Aptitude на реальных примерах, вам следует перейти к следующим статьям.

  1. Изучите 25 полезных примеров APT-GET и APT-CACHE
  2. Изучите управление пакетами Linux с помощью Aptitude и Dpkg

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

Помимо основного различия в том, что Aptitude — это менеджер пакетов высокого уровня, а APT — менеджер пакетов более низкого уровня, который может использоваться другими менеджерами пакетов более высокого уровня, другими основными Основные моменты, которые разделяют эти два менеджера пакетов:

  1. Aptitude имеет более широкий функционал, чем apt-get, и объединяет функции apt-get и других его вариантов, включая apt-mark и apt. -кэш.

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

  1. Хотя в apt-get отсутствует пользовательский интерфейс, у Aptitude есть только текстовый и интерактивный пользовательский интерфейс.

Apt-get, являющийся менеджером пакетов более низкого уровня, ограничен только командной строкой, в то время как Aptitude, являющийся инструментом более высокого уровня, имеет текстовый интерактивный интерфейс по умолчанию, а также возможность работы в командной строке путем ввода обязательного команды.

  1. В Aptitude управление пакетами лучше, чем в apt-get.

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

1. При удалении любого установленного пакета Aptitude автоматически удалит неиспользуемые пакеты, тогда как apt-get потребует от пользователя явно указать это, либо добавив дополнительная опция '—auto-remove' или указание 'apt-get autoremove'.4

2. Чтобы выяснить, почему определенное действие блокируется или почему или почему не следует предпринимать определенное действие, Aptitude предлагает 'Why' и ' команды «почему бы и нет».

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

$ 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), а пакет (dwww) предлагается одним из установленных пакетов с именем ' база документов».

Эта функция отсутствует в apt-get.

3. Хотя apt-get, вероятно, отключится в случае конфликтного действия при установке или удалении пакета с сообщением, Aptitude может предложить возможные меры по устранению этого конфликта.

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

В то время как apt-get нужен другой вариант apt, то есть apt-cache, для поиска пакета, Aptitude предоставляет гораздо более простой и эффективный способ поиска пакета, который либо установлен, либо присутствует. в репозитории, но еще не установлен.

Поиск пакета с использованием apt-cache и Aptitude

$ apt-cache search 'python' | head -n4
kate - powerful text editor
kcachegrind-converters - format converters for KCachegrind profiler visualisation tool
kig - interactive geometry tool for KDE
python-kde4 - Python bindings for the KDE Development Platform

$ aptitude search 'python' | head -n4
i   bpython                         - fancy interface to the Python interpreter 
p   bpython-gtk                     - fancy interface to the Python interpreter 
p   bpython-urwid                   - fancy interface to the Python interpreter 
p   bpython3                        - fancy interface to the Python3 interpreter

Здесь по умолчанию и apt-cache, и aptitude ищут пакет по всему списку пакетов в репозитории, но выходные данные aptitude показывают, установлен ли пакет в системе или не указывая флаг для каждого пакета, который здесь: 'p', указывающий, что пакет присутствует, но не установлен, и 'i', который указывает, что пакет установлен, тогда как apt -cache просто перечисляет пакет и его однострочную информацию, не сообщая, установлен ли пакет или нет.

Некоторые другие примеры расширенного поиска пакетов с помощью Aptitude

1. Поиск пакета в репозитории с 'python2.7' в имени пакета и '2.7' в его описании.

$ 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
i   libpython2.7-minimal             - Minimal subset of the Python language (ver
p   libpython2.7-minimal:i386        - Minimal subset of the Python language (ver
i   libpython2.7-stdlib              - Interactive high-level object-oriented lan
p   libpython2.7-stdlib:i386         - Interactive high-level object-oriented lan
p   libpython2.7-testsuite           - Testsuite for the Python standard library 
i   python2.7                        - Interactive high-level object-oriented lan
p   python2.7:i386                   - Interactive high-level object-oriented lan
p   python2.7-dbg                    - Debug Build of the Python Interpreter (ver
p   python2.7-dbg:i386               - Debug Build of the Python Interpreter (ver
i A python2.7-dev                    - Header files and a static library for Pyth
p   python2.7-dev:i386               - Header files and a static library for Pyth
p   python2.7-doc                    - Documentation for the high-level object-or
p   python2.7-examples               - Examples for the Python language (v2.7)   
i   python2.7-minimal                - Minimal subset of the Python language (ver
p   python2.7-minimal:i386           - Minimal subset of the Python language (ver

Здесь '~n' указывает имя, а '~d' указывает описание. Другая форма той же команды:

aptitude search '?name(python2.7) ?description(2.7)'
Некоторые другие флаги включают в себя:
  1. ~i или ?installed(): поиск пакета только в списке установленных пакетов.
  2. ~U или ~Upgradable: список всех пакетов, которые можно обновить до последних доступных версий.
  3. ~E или ?Essential(): те пакеты, которые либо установлены, либо доступны, и которые необходимы.
$ aptitude versions '?Upgradable' | head -n 12
Package apache2:
ph  2.4.7-1ubuntu4                                trusty                    500 
ph  2.4.7-1ubuntu4.5                              trusty-security           500 
ih  2.4.7-1ubuntu4.8                                                        100 
ph  2.4.7-1ubuntu4.9                              trusty-updates            500 

Package apache2-bin:
p A 2.4.7-1ubuntu4                                trusty                    500 
p A 2.4.7-1ubuntu4.5                              trusty-security           500 
i A 2.4.7-1ubuntu4.8                                                        100 
p A 2.4.7-1ubuntu4.9                              trusty-updates            500 

Как приведенный здесь краткий список из 3 пакетов с установленной версией (обозначенной 'i') и их доступной для обновления версией (обозначенной 'p').

2. Поиск всех пакетов, предоставляющих определенную услугу.

Чтобы найти все пакеты, предоставляющие службу 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

3. Поиск всех пакетов, предлагающих определенный пакет.

Как и здесь, мы перечисляем все пакеты, которые предлагают пакет ’gcc’.

$ aptitude search '~DSuggests:gcc' | head -n10
p   bochs                           - IA-32 PC emulator                         
p   bochs:i386                      - IA-32 PC emulator                         
p   cpp-4.4                         - GNU C preprocessor                        
p   cpp-4.4:i386                    - GNU C preprocessor                        
p   cpp-4.6                         - GNU C preprocessor                        
p   cpp-4.6:i386                    - GNU C preprocessor                        
p   cpp-4.7                         - GNU C preprocessor                        
p   cpp-4.7:i386                    - GNU C preprocessor                        
p   cpp-4.7-arm-linux-gnueabi       - GNU C preprocessor                        
p   cpp-4.7-arm-linux-gnueabi:i386  - GNU C preprocessor 

Заключение

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