apt

Материал из Циклопедии
Перейти к навигации Перейти к поиску

программное обеспечение
Advanced Package Tool
Файл:Apt-get install mediawiki.png
Установка пакета с помощью apt-get
Тип

Система управления пакетами

Разработчик

Проект Debian

Написана на

C++

Операционная система

Unix-подобные системы

Первый выпуск

31 марта 1998 года; 10413 дней тому назад[1]

Последняя версия

2.2.5[2] (17 января 2023 года; 1355 дней тому назад)

Лицензия

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[править]

Synaptic package manager является одним из доступных фронтендов для 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].

Бэкенд[править]

См. также[править]

Источники[править]

  1. ↑ Initial release. apt package changelog. The Debian project (31 March 1998). Проверено 18 декабря 2021.
  2. ↑ Details of package apt in bullseye. Debian packages. The Debian project (17 January 2023).
  3. ↑ 3,0 3,1 3,2 .en.html apt-get(8). Debian Manpages. Проверено 18 декабря 2021.
  4. ↑ Byfield, Bruce An apt-get primer (9 December 2004). Проверено 18 декабря 2021.
  5. ↑ From the archives: the best distros of 2000. Tux radar. Архивировано из первоисточника 26 июля 2020.
  6. ↑ Dorgan, David Migrating to Debian. linux.ie (19 January 2004). Архивировано из первоисточника 13 мая 2006.
  7. ↑ Mobile Linux development with Familiar and a minimal Debian. Mobile Tux. Архивировано из первоисточника 15 сентября 2008.
  8. ↑ Why Debian. Проверено 18 декабря 2021.
  9. ↑ Debian policy manual. Проверено 18 декабря 2021.
  10. ↑ Discussion on dist-upgrade vs. full-upgrade. Проверено 18 декабря 2021.
  11. ↑ apt-config(8). Debian Manpages. Проверено 18 декабря 2021.
  12. ↑ Query APT configuration using apt-config - Debian admin. Проверено 18 декабря 2021.
  13. ↑ SourcesList. Debian Wiki. Проверено 18 декабря 2021.
  14. ↑ Debian 11 "bullseye" released. www.debian.org. Проверено 11 мая 2022.
  15. ↑ Chapter 2. Debian package management. www.debian.org. Проверено 20 февраля 2023.
  16. ↑ .en.html apt-cdrom(8). Debian Manpages. Проверено 27 декабря 2021.
  17. ↑ «например, deb file:/mnt/install stable main contrib non-free» 
  18. ↑ AptConfiguration. Debian Wiki. Проверено 18 мая 2020.
  19. ↑ AptURL. Ubuntu Wiki. Проверено 27 декабря 2021.
  20. ↑ Как установить программное обеспечение в Ubuntu Linux: Полное руководство для новичка (17 июня 2018). Проверено 27 декабря 2021.
  21. ↑ Jurick David iPhone hacks: Pushing the iPhone and iPod touch beyond their limits. — O'Reilly Media, Inc., 2009. — ISBN 9780596516642.
  22. ↑ Adhikari, Richard Android, Schmandroid: Linux на iPhone. LinuxInsider (20 March 2008). Проверено 27 декабря 2021.
  23. ↑ Mullikin, Glenn [[1] в «Книгах Google» Эволюция систем управления пакетами Debian] 50 (December 2001). — «gnome-apt был написан Хэвоком Пеннингтоном»
  24. ↑ https://web.archive.org/web/20190214174545/https://mxlinux.org/package-installer
  25. ↑ https://anaptofflineblog.blogspot.com/2018/10/
  26. ↑ White, Brian C. "dselect" проект замены ("deity") (11 апреля 1997).
  27. ↑ Gunthorpe, Jason It's working (2 марта 1998).
  28. ↑ Gunthorpe, Jason Re: 2 вещи (!) (19 March 1998).
  29. ↑ Краткая история Debianангл.. debian.org. Архивировано из первоисточника 24 августа 2003.
  30. ↑ Secure APT. Debian Wiki. Проверено 27 декабря 2021.
  31. ↑ APT-RPM. apt-rpm.org. shtml Архивировано из первоисточника 21 апреля 2008. Проверено 27 декабря 2021.
  32. ↑ Fink - About. www. finkproject.org. Архивировано из первоисточника 11 мая 2008. Проверено 27 декабря 2021.
  33. ↑ Inspecting and extracting Debian package contents. Packagecloud blog (13 October 2015). Проверено 27 декабря 2021.

Ссылки[править]

Руниверсалис

Одним из источников, использованных при создании данной статьи, является статья из википроекта «Руниверсалис» («Руни», руни.рф) под названием «Apt», расположенная по адресу:

Материал указанной статьи полностью или частично использован в Циклопедии по лицензии CC BY-SA.

Всем участникам Руниверсалиса предлагается прочитать «Обращение к участникам Руниверсалиса» основателя Циклопедии и «Почему Циклопедия?».