Advanced package tool , или APT , — это пользовательский интерфейс свободного программного обеспечения , который работает с основными библиотеками для управления установкой и удалением программного обеспечения в Debian и дистрибутивах Linux на основе Debian . [4] APT упрощает процесс управления программным обеспечением в Unix-подобных компьютерных системах, автоматизируя извлечение, настройку и установку пакетов программного обеспечения либо из предварительно скомпилированных файлов, либо путем компиляции исходного кода. [4]
APT — это набор инструментов, распространяемых в пакете с именем apt . Значительная часть APT определена в библиотеке функций C++apt
; APT также включает программы командной строки для работы с пакетами, которые используют эту библиотеку. Три такие программы — , apt-get
и apt-cache
. Они обычно используются в примерах, поскольку они просты и вездесущи. Пакет apt имеет « важный » приоритет во всех текущих выпусках Debian и поэтому включен в установку Debian по умолчанию. APT можно считать интерфейсом для , dpkg
более дружественным, чем старый dselect
интерфейс. Выполняя dpkg
действия над отдельными пакетами, APT управляет отношениями (особенно зависимостями) между ними, а также поиском и управлением решениями по управлению версиями более высокого уровня (отслеживание выпусков и закрепление версий).
APT часто называют одной из лучших функций Debian, [5] [6] [7] [8] которую разработчики Debian приписывают строгому контролю качества в политике Debian. [9] [10]
Главной особенностью 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
содержит список мест, из которых можно получить нужные файлы пакетов. [4] aptitude имеет более умную dist-upgrade
функцию, называемую full-upgrade
. [11]/etc/apt
содержит папки и файлы конфигурации APT.
apt-config
это программа APT Configuration Query. [12] apt-config dump
показывает конфигурацию. [13]
/etc/apt/sources.list
: [14] Места, откуда можно получить посылки./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 репозиторий — это каталог, содержащий пакеты вместе с файлом индекса. Его можно указать как сетевое или CD-ROM- расположение. По состоянию на 14 августа 2021 года [обновлять]проект Debian хранит центральный репозиторий из более чем 50 000 пакетов программного обеспечения, готовых к загрузке и установке. [15]
Любое количество дополнительных репозиториев может быть добавлено в файл конфигурации APT sources.list/etc/apt/sources.list
( ) и затем запрошено APT. Графические интерфейсы часто позволяют вносить изменения sources.list
проще ( apt-setup
). После указания репозитория пакетов (например, во время установки системы) пакеты в этом репозитории могут быть установлены без указания источника и будут автоматически обновляться.
В дополнение к сетевым репозиториям можно использовать компакт-диски и другие носители информации (USB-ключи, жесткие диски...), используя apt-cdrom
[16] или добавив file:/
URI [17] в файл списка источников. apt-cdrom
можно указать папку, отличную от CD-ROM, используя -d
опцию (т. е. жесткий диск или USB-ключ). Доступные для загрузки компакт-диски Debian содержат репозитории Debian. Это позволяет обновлять несетевые машины. Можно также использовать apt-zip
.
Проблемы могут возникнуть, когда несколько источников предлагают один и тот же пакет(ы). Системы, которые имеют такие потенциально конфликтующие источники, могут использовать APT pinning для управления тем, какие источники должны быть предпочтительными.
Функция закрепления APT позволяет пользователям заставлять APT выбирать определенные версии пакетов, которые могут быть доступны в разных версиях из разных репозиториев. Это позволяет администраторам гарантировать, что пакеты не будут обновлены до версий, которые могут конфликтовать с другими пакетами в системе или которые не были достаточно протестированы на нежелательные изменения.
Для этого необходимо изменить контакты в файле настроек APT ( ), [18] хотя графические интерфейсы часто упрощают процесс закрепления./etc/apt/preferences
Существуют несколько других интерфейсов APT, которые предоставляют более продвинутые функции установки и более интуитивные интерфейсы. К ним относятся:
Интерфейсы APT могут:
Интерфейсы APT могут выводить список зависимостей устанавливаемых или обновляемых пакетов, спрашивать администратора, следует ли также устанавливать пакеты, рекомендованные или предложенные недавно установленными пакетами, автоматически устанавливать зависимости и выполнять другие операции в системе, такие как удаление устаревших файлов и пакетов.
Первоначальные усилия, которые привели к apt-get
программе, были dselect
проектом замены, известным под кодовым названием Deity . [24] Этот проект был заказан в 1997 году Брайаном Уайтом, менеджером по выпуску Debian в то время. Первая функциональная версия apt-get
называлась dpkg-get
и была предназначена только для того, чтобы быть тестовой программой для основных библиотечных функций, которые должны были лежать в основе нового пользовательского интерфейса (UI). [25]
Большая часть первоначальной разработки APT была сделана в интернет-чате (IRC), поэтому записи были утеряны. Архивы почтовой рассылки 'Deity creation team' содержат только основные моменты.
Название «Божество» было отклонено как официальное название проекта из-за опасений по поводу религиозной природы названия. Название APT было окончательно решено после значительного внутреннего и публичного обсуждения. В конечном итоге название было предложено на IRC, принято и затем окончательно утверждено в списках рассылки. [26]
APT был представлен в 1998 году, и оригинальные тестовые сборки распространялись по IRC. Первой версией Debian, включавшей его, была Debian 2.1, выпущенная 9 марта 1999 года. [27]
В конце концов, первоначальная цель проекта Deity по замене dselect
пользовательского интерфейса оказалась неудачной. Работа над частью проекта, посвященной пользовательскому интерфейсу, была прекращена (каталоги пользовательского интерфейса были удалены из системы параллельных версий ) после первого публичного выпуска apt-get
. Отклик на APT как на dselect
метод и утилиту командной строки был настолько большим и позитивным, что все усилия по разработке были сосредоточены на поддержании и улучшении инструмента. Лишь гораздо позже несколько независимых людей создали пользовательские интерфейсы поверх libapt-pkg
.
В конце концов, новая команда подхватила проект, начала разрабатывать новые функции и выпустила версию 0.6 APT, в которой была представлена функция Secure APT, использующая надежную криптографическую подпись для аутентификации репозиториев пакетов. [28]
APT изначально был разработан как интерфейс для dpkg для работы с пакетами Debian .deb
. Версия APT, модифицированная для работы с системой RPM Package Manager, была выпущена как APT-RPM . [29] Проект Fink перенес APT на Mac OS X для некоторых собственных задач по управлению пакетами, [30] и APT также доступен в OpenSolaris .
apt-file — это команда, упакованная отдельно от APT, позволяющая найти, какой пакет включает определенный файл, или составить список всех файлов, включенных в пакет в удаленных репозиториях. [31]
{{citation}}
: CS1 maint: постскриптум ( ссылка )gnome-apt был написан Havoc Pennington