Расширенный пакетный инструмент , или APT , — это пользовательский интерфейс бесплатного программного обеспечения , который работает с основными библиотеками для управления установкой и удалением программного обеспечения в Debian и дистрибутивах Linux на основе Debian . [3] APT упрощает процесс управления программным обеспечением в Unix-подобных компьютерных системах за счет автоматизации поиска, настройки и установки пакетов программного обеспечения либо из предварительно скомпилированных файлов, либо путем компиляции исходного кода. [3]
APT — это набор инструментов, распространяемых в пакете с именем apt . Значительная часть APT определена в библиотеке функций C++ ; APT также включает в себя программы командной строки для работы с пакетами, использующими эту библиотеку. Три таких программы: apt
, apt-get
и apt-cache
. Их часто используют в примерах, поскольку они просты и распространены. Пакет apt имеет « важный » приоритет во всех текущих выпусках Debian и поэтому включен в установку Debian по умолчанию. APT можно считать интерфейсом для dpkg
, более дружелюбным, чем старый dselect
интерфейс. Выполняя dpkg
действия над отдельными пакетами, APT управляет отношениями (особенно зависимостями) между ними, а также источником и управлением решениями по управлению версиями более высокого уровня (отслеживание выпуска и закрепление версии).
APT часто называют одной из лучших функций Debian, [4] [5] [6] [7] что разработчики Debian объясняют строгим контролем качества в политике Debian. [8] [9]
Основной особенностью APT является способ его вызова dpkg
: он выполняет топологическую сортировку списка пакетов, которые необходимо установить или удалить, и вызывает dpkg
в наилучшей возможной последовательности. В некоторых случаях он использует --force
параметры dpkg
. Однако он делает это только тогда, когда не может рассчитать, как избежать причины, dpkg
требующей принудительного действия.
Пользователь указывает один или несколько пакетов для установки. Каждое имя пакета формулируется как часть имени пакета, а не как полное имя файла (например, в системе Debian в качестве аргумента libc6
будет указан аргумент, а не libc6_1.9.6-2.deb
). Примечательно, что APT автоматически получает и устанавливает пакеты, от которых зависит указанный пакет (при необходимости). Это была первоначальная отличительная особенность систем управления пакетами на основе APT, поскольку она позволяла избегать сбоев установки из-за отсутствия зависимостей, своего рода ада зависимостей .
Еще одним отличием является получение пакетов из удаленных репозиториев. APT использует файл конфигурации местоположения ( /etc/apt/sources.list
), чтобы найти нужные пакеты, которые могут быть доступны, например, в сети или на съемном носителе, и получить их, а также получить информацию о доступных (но не установленных) пакетах.
APT предоставляет другие параметры команды для отмены решений, принятых системой разрешения конфликтов apt-get. Один из вариантов — принудительно использовать конкретную версию пакета. Это может привести к понижению версии пакета и выводу зависимого программного обеспечения из строя, поэтому пользователю следует соблюдать осторожность.
Наконец, этот apt_preferences
механизм позволяет пользователю создавать альтернативную политику установки для отдельных пакетов.
Пользователь может указать пакеты, используя регулярное выражение POSIX .
APT выполняет поиск в своем кэшированном списке пакетов и перечисляет зависимости, которые необходимо установить или обновить.
APT автоматически извлекает, настраивает и устанавливает зависимости.
Триггеры — это обработка отложенных действий.
Режимы использования apt
и apt-get
, которые облегчают обновление установленных пакетов, включают:
update
используется для повторной синхронизации индексных файлов пакетов из их источников. Списки доступных пакетов извлекаются из мест, указанных в /etc/apt/sources.list
. Например, при использовании архива Debian эта команда извлекает и сканирует файлы Packages.gz
, чтобы получить доступ к информации о новых и обновленных пакетах.upgrade
используется для установки новейших версий всех пакетов, установленных в настоящее время в системе, из источников, перечисленных в /etc/apt/sources.list
. Пакеты, установленные в настоящее время с доступными новыми версиями, извлекаются и обновляются; ни при каких обстоятельствах установленные в данный момент пакеты не удаляются, а еще не установленные пакеты не извлекаются и не устанавливаются. Новые версии установленных в данный момент пакетов, которые невозможно обновить без изменения статуса установки другого пакета, останутся в своей текущей версии.full-upgrade
( apt
) и dist-upgrade
( apt-get
), помимо выполнения функции upgrade
, также разумно обрабатывают изменение зависимостей с новыми версиями пакетов; apt
иметь apt-get
«умную» систему разрешения конфликтов и при необходимости пытаться обновить наиболее важные пакеты за счет менее важных. Файл /etc/apt/sources.list
содержит список мест, из которых можно получить нужные файлы пакета. [3] В aptitude есть более умная dist-upgrade
функция под названием full-upgrade
. [10]/etc/apt
содержит папки и файлы конфигурации APT.
apt-config
— это программа запроса конфигурации APT. [11] apt-config dump
показывает конфигурацию. [12]
/etc/apt/sources.list
: [13] Места, откуда можно получить посылки./etc/apt/sources.list.d/
: Дополнительные фрагменты списка источников./etc/apt/apt.conf
: файл конфигурации APT./etc/apt/apt.conf.d/
: фрагменты файла конфигурации APT./etc/apt/preferences.d/
: Каталог с файлами настроек версии. Здесь указывается «закрепление», т.е. предпочтение получать определенные пакеты из отдельного источника или из другой версии дистрибутива./var/cache/apt/archives/
: Область хранения полученных файлов пакетов./var/cache/apt/archives/partial/
: Область хранения файлов пакетов в пути./var/lib/apt/lists/
: Область хранения информации о состоянии каждого ресурса пакета, указанного вsources.list
/var/lib/apt/lists/partial/
: Место хранения государственной информации в пути.APT опирается на концепцию репозиториев для поиска программного обеспечения и разрешения зависимостей. Для APT репозиторий — это каталог, содержащий пакеты и индексный файл. Это может быть указано как сетевое местоположение или местоположение на компакт-диске . По состоянию на 14 августа 2021 года [обновлять]в проекте Debian имеется центральный репозиторий, содержащий более 50 000 пакетов программного обеспечения, готовый к загрузке и установке. [14]
В файл конфигурации source.list ( ) APT можно добавить любое количество дополнительных репозиториев, /etc/apt/sources.list
а затем APT запросит их. Графические интерфейсы часто позволяют упростить внесение изменений sources.list
( apt-setup
). После указания репозитория пакетов (например, во время установки системы) пакеты в этом репозитории можно устанавливать без указания источника, и они будут автоматически обновляться.
В дополнение к сетевым репозиториям также можно использовать компакт-диски и другие носители данных (USB-накопитель, жесткие диски...), используя apt-cdrom
[15] или добавляя file:/
URI [16] в файл списка источников. apt-cdrom
Используя эту опцию, можно указать папку, отличную от компакт-диска -d
(т. е. жесткий диск или USB-накопитель). Компакт-диски Debian, доступные для загрузки, содержат репозитории Debian. Это позволяет обновлять машины, не подключенные к сети. Можно также использовать apt-zip
.
Проблемы могут возникнуть, когда несколько источников предлагают один и тот же пакет(ы). Системы, которые имеют такие потенциально конфликтующие источники, могут использовать закрепление APT, чтобы контролировать, какие источники следует отдать предпочтение.
Функция закрепления APT позволяет пользователям заставлять APT выбирать определенные версии пакетов, которые могут быть доступны в разных версиях из разных репозиториев. Это позволяет администраторам гарантировать, что пакеты не будут обновлены до версий, которые могут конфликтовать с другими пакетами в системе или которые не были достаточно проверены на наличие нежелательных изменений.
Для этого необходимо изменить выводы в файле настроек APT ( ), [17] хотя графические интерфейсы часто упрощают закрепление./etc/apt/preferences
Существует несколько других интерфейсов APT, которые предоставляют более продвинутые функции установки и более интуитивно понятные интерфейсы. К ним относятся:
Интерфейсы APT могут:
Интерфейсы APT могут перечислять зависимости устанавливаемых или обновляемых пакетов, спрашивать администратора, следует ли также устанавливать пакеты, рекомендованные или предлагаемые вновь установленными пакетами, автоматически устанавливать зависимости и выполнять другие операции в системе, такие как удаление устаревших файлов и пакетов.
Первоначальной попыткой, которая привела к созданию apt-get
программы, был dselect
проект-замена, известный под кодовым названием Deity . [23] Этот проект был заказан в 1997 году Брайаном Уайтом, в то время менеджером по выпуску Debian. Самая первая функциональная версия apt-get
называлась dpkg-get
и предназначалась только как тестовая программа для основных функций библиотеки, которые легли в основу нового пользовательского интерфейса (UI). [24]
Большая часть первоначальной разработки APT велась через интернет-чат (IRC), поэтому записи были утеряны. Архивы списка рассылки «Команды создания божеств» включают только самые важные моменты.
Имя «Божество» было оставлено в качестве официального названия проекта из-за опасений по поводу религиозного характера названия. Название APT в конечном итоге было выбрано после значительного внутреннего и общественного обсуждения. В конечном итоге название было предложено в IRC, принято, а затем окончательно утверждено в списках рассылки. [25]
APT был представлен в 1998 году, а оригинальные тестовые сборки были распространены по IRC. Первой версией Debian, включавшей его, была Debian 2.1, выпущенная 9 марта 1999 года. [26]
В конце концов первоначальная цель проекта Deity по замене dselect
пользовательского интерфейса провалилась. Работа над частью проекта, посвященной пользовательскому интерфейсу, была прекращена (каталоги пользовательского интерфейса были удалены из системы параллельных версий ) после первого публичного выпуска apt-get
. Реакция на APT как на dselect
метод и утилиту командной строки была настолько велика и положительна, что все усилия разработчиков были направлены на поддержание и улучшение этого инструмента. Лишь намного позже несколько независимых людей создали пользовательские интерфейсы на основе libapt-pkg
.
В конце концов, новая команда подхватила проект, начала создавать новые функции и выпустила версию 0.6 APT, в которой появилась функция Secure APT, использующая надежную криптографическую подпись для аутентификации репозиториев пакетов. [27]
APT изначально разрабатывался как интерфейс dpkg для работы с пакетами Debian .deb
. Версия APT, модифицированная для работы с системой диспетчера пакетов RPM, была выпущена как APT-RPM . [28] Проект Fink портировал APT на Mac OS X для некоторых собственных задач управления пакетами, [29] APT также доступен в OpenSolaris .
apt-file — это команда, упакованная отдельно от APT, позволяющая определить, какой пакет включает определенный файл, или вывести список всех файлов, включенных в пакет, в удаленных репозиториях. [30]
{{citation}}
: CS1 maint: постскриптум ( ссылка )gnome-apt был написан Хэвоком Пеннингтоном.