apt

Материал из Циклопедии
Перейти к навигации Перейти к поиску
программное обеспечение
Advanced Package Tool
Файл:Apt-get install mediawiki.png
Установка пакета с помощью apt-get
ТипСистема управления пакетами
РазработчикПроект Debian
Написана наC++
Операционная системаUnix-подобные системы
Первый выпуск31 марта 1998 года; 9566 дней тому назад[1]
Последняя версия2.2.5[2] (17 января 2023 года; 508 дней тому назад)
Лицензия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). Проверено 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.
  6. Dorgan, David Migrating to Debian. linux.ie (19 January 2004).
  7. Mobile Linux development with Familiar and a minimal Debian. Mobile Tux.
  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). Проверено 18 декабря 2021.
  12. Query APT configuration using apt-config - Debian admin. Проверено 18 декабря 2021.
  13. SourcesList. Проверено 18 декабря 2021.
  14. Debian 11 "bullseye" released. Проверено 11 мая 2022.
  15. Chapter 2. Debian package management. Проверено 20 февраля 2023.
  16. .en.html apt-cdrom(8). Проверено 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.
  30. Secure APT. Debian Wiki. Проверено 27 декабря 2021.
  31. APT-RPM. apt-rpm.org. Проверено 27 декабря 2021.
  32. Fink - About. www. finkproject.org. Проверено 27 декабря 2021.
  33. Inspecting and extracting Debian package contents (13 October 2015). Проверено 27 декабря 2021.

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

Runi.svg Одним из источников этой статьи является статья в википроекте «Руниверсалис» («Руни», руни.рф), называющаяся «apt».
Материал указанной статьи полностью или частично использован в Циклопедии по лицензии CC BY-SA.
Всем участникам Руниверсалиса предлагается прочитать «Обращение к участникам Руниверсалиса» основателя Циклопедии и «Почему Циклопедия?».