apt
программное обеспечение | |
Advanced Package Tool | |
Установка пакета с помощью apt-get | |
Тип | Система управления пакетами |
---|---|
Разработчик | Проект Debian |
Написана на | C++ |
Операционная система | Unix-подобные системы |
Первый выпуск | 31 марта 1998 года[1] |
Последняя версия | 2.2.5[2] (17 января 2023 года ) |
Лицензия | GPLv2+ |
Сайт | wiki.debian.org/apt/Apt |
Advanced package tool (apt) — свободно распространяемая программа, командный интерфейс (front-end к базовым библиотекам), который предоставляет функции установки и удаления программного обеспечения на Debian и базирующихся на Debian Linux-дистрибутивах.[3]
APT упрощает процесс управления программным обеспечением на Unix-подобных компьютерных системах, автоматизируя получение, настройку и установку пакетов, либо из предварительно скомпилированных файлов, либо с помощью компиляции исходного кода.[3].
Использование[править]
APT это коллекция инструментов, распространяемых в пакете apt. Значительная часть APT реализована в библиотеке функций C++; APT также включает программы командной строки для работы с пакетами, которые используют эту библиотеку. Тремя такими программами являются apt
, apt-get
and apt-cache
. Они часто используются в примерах, потому что они просты и вездесущи. Пакет apt имеет высокий приоритет во всех текущих выпусках Debian, и поэтому включен в установку Debian по умолчанию. APT можно считать фронтендом к dpkg
, более дружественным, чем более старый фронтенд dselect
. В то время как dpkg
выполняет действия над отдельными пакетами, APT управляет отношениями (особенно зависимостями) между ними, а также поиском и управлением версионными решениями более высокого уровня (отслеживание релизов и привязка версий). В то время как dpkg
выполняет действия над отдельными пакетами, APT управляет отношениями (особенно зависимостями) между ними, а также поиском и управлением версионными решениями более высокого уровня (отслеживание релизов и привязка версий). APT часто называют одной из лучших отличительных особенностей Debian[4][5][6][7] что разработчики Debian связывают со строгим контролем качества в политике Debian.[8][9]
Установка ПО[править]
Пользователь указывает один или несколько пакетов для установки. Имя каждого пакета формулируется как часть имени пакета, а не как полное имя файла (например, в системе Debian аргументом будет libc6
, а не libc6_1.9.6-2.deb
). Примечательно, что apt автоматически получает и устанавливает пакеты, от которых зависит указанный пакет (если это необходимо). Это было первоначальной отличительной особенностью систем управления пакетами на базе APT, так как это позволяло избежать сбоя установки из-за отсутствия зависимостей, типа dependency hell.
Еще одним отличием является получение пакетов из удаленных хранилищ. 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].
Конфигурация apt и утилиты[править]
/etc/apt
содержит папки и файлы конфигурации APT.
apt-config
— утилита запроса конфигурации APT.[11] apt-config dump
отображает конфигурацию.[12].
Файлы[править]
/etc/apt/sources.list
:[13] Locations to fetch packages from./etc/apt/sources.list.d/
: Дополнительные фрагменты списка источников./etc/apt/apt.conf
: Файл конфигурации APT./etc/apt/apt.conf.d/
: Фрагменты файла конфигурации APT./etc/apt/preferences.d/
: Каталог с файлами предпочтений версий. Здесь вы можете указать «pinning», то есть предпочтение получать определенные пакеты из отдельного источника или из другой версии дистрибутива./var/cache/apt/archives/
: Область хранения для извлеченных файлов пакетов./var/cache/apt/archives/partial/
: Место для хранения пакетных файлов в процессе транзита./var/lib/apt/lists/
: Область хранения информации о состоянии каждого ресурса пакета, указанного вsources.list
/var/lib/apt/lists/partial/
: Область хранения информации о состоянии во время транзита.
Источники[править]
APT опирается на концепцию репозиториев для поиска программного обеспечения и разрешения зависимостей. Для APT репозиторий — это каталог, содержащий пакеты вместе с индексным файлом. Он может быть указан как сетевой или CD-ROM. По состоянию на 02/2023 проект Debian хранит центральный репозиторий из более чем 68,000 пакетов программного обеспечения, готовых для загрузки и установки.[14][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 pinning[править]
Функция APT pinning позволяет пользователям заставить APT выбирать определенные версии пакетов, которые могут быть доступны в разных версиях из разных репозиториев. Это позволяет администраторам гарантировать, что пакеты не будут обновлены до версий, которые могут конфликтовать с другими пакетами в системе, или которые не были достаточно протестированы на предмет нежелательных изменений.
Для этого необходимо изменить пины в файле предпочтений APT (/etc/apt/preferences
),[18] хотя графические интерфейсы часто упрощают создание пинов.
Фронтенды к apt[править]
.
Существует несколько других фронтендов для APT, которые обеспечивают более продвинутые функции установки и более интуитивные интерфейсы. К ним относятся:
- Synaptic, реализованный на GTK графический интерфейс пользователя
- Aptitude, консольное приложение командной строки с базированным на ncurses текстовым интерфейсом.
- GDebi, apt-утилита, которую можно использовать в командной строке и в графическом интерфейсе. GDebi может установить локальный .deb файл через командную строку, как команда dpkg, но с доступом к репозиториям для разрешения зависимостей. Он построен на GTK но существует также Qt-версия, gdebi-kde.
- Центр приложений Ubuntu (Ubuntu Software Center), графический интерфейс пользователя на GTK, разработанный проектом Ubuntu
- KPackage, часть KDE.
- Adept package manager, графический пользовательский интерфейс для KDE (deb, rpm, bsd)
- PackageKit, внешний интерфейс freedesktop.org.
- apt-cdrom, способ добавить новый CDROM в список доступных репозиториев APT (sources.lists). Необходимо использовать apt-cdrom для добавления компакт-дисков в систему APT, это нельзя сделать вручную.
- apt-zip, способ использования apt со съемными носителями, в частности с USB-флешками.
- aptURL, пакет программ Ubuntu, позволяющий устанавливать приложения конечного пользователя одним щелчком мыши через браузер.[19][20].
- Cydia, менеджер пакетов для iOS jailbreak, основанный на APT (портирован на iOS в рамках проекта Telesphoreo).[21][22].
- Sileo (getsileo.app), как и Cydia, менеджер пакетов для взломанной iOS, основанный на новых версиях APT (портирован на iOS командой Electra).
- gnome-apt, графический интерфейс на основе GTK/GNOME-виджетов. Разработан Хэвок Пеннингтон[23].
- Muon discover (предыдущий программный центр Muon), графический пользовательский интерфейс на базе Qt.
- Hildon application manager (Maemo application), внешний интерфейс Maemo.
- apticron, служба, предназначенная для запуска через cron для отправки уведомлений о предстоящих обновлениях по электронной почте системному администратору (сисадмину).
- APT Daemon, внешний модуль, который запускается как сервис (демон) Unix, чтобы позволить пользователям устанавливать программное обеспечение через PolicyKit и в свою очередь является основой, используемой Центре приложений Ubuntu (вместе с Linux Mint software manager).
- Программа установки пакетов, часть MX Linux.[24].
- Apt-offline[25]: Удобный способ внести любое доступное неконтейнерное изменение в любую установку Linux типа Debian без использования прямого подключения к Интернету. Однако, временное прямое соединение может потребоваться, например, для установки Apt-offline на некоторые соответствующие типы Linux, и для добавления PPA'ов в список источников.
Внешние модули APT могут:
- искать новые пакеты;
- обновлять пакеты;
- устанавливать или удалять пакеты и
- обновлять всю систему до нового выпуска.
Фронтенд-модули APT могут выводить список зависимостей устанавливаемых или обновляемых пакетов, спрашивать администратора, следует ли установить пакеты, рекомендованные или предложенные вновь установленными пакетами, автоматически устанавливать зависимости и выполнять другие операции в системе, например, удалять устаревшие файлы и пакеты.
История[править]
Изначально программа apt-get
была разработана в рамках проекта заменыdselect
, известный под кодовым названием Deity.[26] Этот проект был заказан в 1997 году Брайаном Уайтом, менеджером выпуска Debian в то время. Самая первая функциональная версия apt-get
называлась dpkg-get
и была предназначена только для тестирования основных библиотечных функций, которые должны были лечь в основу нового пользовательского интерфейса (UI).[27].
Большая часть первоначальной разработки APT была сделана в ретрансляционном чате Интернета (IRC), поэтому записи были утеряны. Архивы списка рассылки 'Deity creation team' включают только основные моменты.
Название «Deity» было отменено в качестве официального названия проекта из-за опасений по поводу религиозного характера названия. Название APT было выбрано после значительного внутреннего и публичного обсуждения. В конечном итоге название было предложено в IRC, принято и затем окончательно утверждено в списках рассылки.[28].
APT был представлен в 1998 году, и оригинальные тестовые сборки распространялись по IRC. Первой версией Debian, включавшей его, был Debian 2.1, выпущенный 9 марта 1999 года.[29].
В итоге первоначальная цель проекта Deity по замене dselect
пользовательского интерфейса была провалена. Работа над частью проекта, связанной с пользовательским интерфейсом, была прекращена (каталоги пользовательского интерфейса были удалены из системы хранения версий) после первого релиза apt-get
. Реакция на APT как на замену dselect
и утилиту командной строки была настолько большой и положительной, что все усилия разработчиков были направлены на поддержку и улучшение инструмента. Только много позже несколько независимых людей создали пользовательские интерфейсы поверх libapt-pkg
.
В конце концов, новая команда подхватила проект, начала создавать новые функции и выпустила версию 0.6 APT, в которой появилась функция Secure APT, использующая надежную криптографическую подпись для аутентификации репозиториев пакетов.[30].
Варианты[править]
APT изначально был разработан как front-end для dpkg для работы с .deb Debian.
пакетами. Версия APT, модифицированная для работы с системой RPM Package Manager, была выпущена как APT-RPM.[31] Проект Fink портировал APT на Mac OS X для некоторых собственных задач управления пакетами,[32], а APT также доступен в OpenSolaris.
apt-file[править]
apt-file — это команда, поставляемая отдельно от APT, для поиска того, какой пакет включает определенный файл, или для списка всех файлов, включенных в пакет в удаленных репозиториях.[33].
Бэкенд[править]
См. также[править]
Источники[править]
- ↑ Initial release. apt package changelog. The Debian project (31 March 1998). Проверено 18 декабря 2021.
- ↑ Details of package apt in bullseye. Debian packages. The Debian project (17 January 2023).
- ↑ 3,0 3,1 3,2 .en.html apt-get(8). Проверено 18 декабря 2021.
- ↑ Byfield, Bruce An apt-get primer (9 December 2004). Проверено 18 декабря 2021.
- ↑ From the archives: the best distros of 2000. Tux radar.
- ↑ Dorgan, David Migrating to Debian. linux.ie (19 January 2004).
- ↑ Mobile Linux development with Familiar and a minimal Debian. Mobile Tux.
- ↑ Why Debian. Проверено 18 декабря 2021.
- ↑ Debian policy manual. Проверено 18 декабря 2021.
- ↑ Discussion on dist-upgrade vs. full-upgrade. Проверено 18 декабря 2021.
- ↑ apt-config(8). Проверено 18 декабря 2021.
- ↑ Query APT configuration using apt-config - Debian admin. Проверено 18 декабря 2021.
- ↑ SourcesList. Проверено 18 декабря 2021.
- ↑ Debian 11 "bullseye" released. Проверено 11 мая 2022.
- ↑ Chapter 2. Debian package management. Проверено 20 февраля 2023.
- ↑ .en.html apt-cdrom(8). Проверено 27 декабря 2021.
- ↑ «например, deb file:/mnt/install stable main contrib non-free»
- ↑ AptConfiguration. Debian Wiki. Проверено 18 мая 2020.
- ↑ AptURL. Ubuntu Wiki. Проверено 27 декабря 2021.
- ↑ Как установить программное обеспечение в Ubuntu Linux: Полное руководство для новичка (17 июня 2018). Проверено 27 декабря 2021.
- ↑ Jurick David iPhone hacks: Pushing the iPhone and iPod touch beyond their limits. — O'Reilly Media, Inc., 2009. — ISBN 9780596516642.
- ↑ Adhikari, Richard Android, Schmandroid: Linux на iPhone. LinuxInsider (20 March 2008). Проверено 27 декабря 2021.
- ↑ Mullikin, Glenn [[1] в «Книгах Google» Эволюция систем управления пакетами Debian] 50 (December 2001). — «gnome-apt был написан Хэвоком Пеннингтоном»
- ↑ https://web.archive.org/web/20190214174545/https://mxlinux.org/package-installer
- ↑ https://anaptofflineblog.blogspot.com/2018/10/
- ↑ White, Brian C. "dselect" проект замены ("deity") (11 апреля 1997).
- ↑ Gunthorpe, Jason It's working (2 марта 1998).
- ↑ Gunthorpe, Jason Re: 2 вещи (!) (19 March 1998).
- ↑ Краткая история Debian (англ.). debian.org.
- ↑ Secure APT. Debian Wiki. Проверено 27 декабря 2021.
- ↑ APT-RPM. apt-rpm.org. Проверено 27 декабря 2021.
- ↑ Fink - About. www. finkproject.org. Проверено 27 декабря 2021.
- ↑ Inspecting and extracting Debian package contents (13 October 2015). Проверено 27 декабря 2021.
Ссылки[править]
- APT (software) // Английская Википедия
- Apt (Advanced Package Tool) — Набор основных инструментов для Debian, debian wiki(рус.)
- The Debian Administrator’s Handbook, «Chapter 6. Maintenance and Updates: The APT Tools»(англ.)
- Ubuntu 18.04 Server Guide, Package Management, Apt(англ.)
- The evolution of package managers (2018) — Debian-based package managers(англ.)
Одним из источников этой статьи является статья в википроекте «Руниверсалис» («Руни», руни.рф), называющаяся «apt». Материал указанной статьи полностью или частично использован в Циклопедии по лицензии CC BY-SA. Всем участникам Руниверсалиса предлагается прочитать «Обращение к участникам Руниверсалиса» основателя Циклопедии и «Почему Циклопедия?». |