Пакеты Debian — это стандартные архивы Unix ar , включающие два архива tar . Один архив содержит управляющую информацию, а другой — устанавливаемые данные. [2]
dpkg предоставляет базовую функциональность для установки и управления пакетами Debian. Обычно конечные пользователи не управляют пакетами напрямую с помощью dpkg , а вместо этого используют программное обеспечение управления пакетами APT или другие интерфейсы APT, такие как aptitude ( nCurses ) и synaptic ( GTK ). [3]
Пакеты Debian можно преобразовывать в другие форматы пакетов и наоборот с помощью alien , а также создавать из исходного кода с помощью checkinstall или Debian Package Maker. [4]
Некоторые основные пакеты Debian доступны как udeb s («микро-debs») и обычно используются только для начальной загрузки установки Debian. Хотя эти файлы используют расширение имени файла udeb , они придерживаются той же спецификации структуры, что и обычные файлы deb . Однако, в отличие от своих аналогов deb , пакеты udeb содержат только необходимые функциональные файлы. [5] В частности, файлы документации обычно опускаются. Пакеты udeb не устанавливаются в стандартной системе Debian, но используются в Debian-Installer .
Выполнение
До Debian 0.93 пакет состоял из заголовка файла и двух объединенных архивов gzip . [6] Начиная с Debian 0.93, пакет deb реализован как архив ar . [7] Этот архив содержит три файла в определенном порядке: [8] [9]
debian-binary — текстовый файл, debian-binaryсодержащий одну строку, содержащую номер версии формата пакета. ( 2.0для текущих версий Debian). [9]
архив управления - архив tar с именем control.tarсодержит скрипты сопровождающего и метаинформацию пакета (имя пакета, версия, зависимости и сопровождающий). Поддерживается сжатие архива с помощью gzip или xz и zstd . Расширение файла изменяется для указания метода сжатия. [9] [2]
архив данных - архив tar с именем data.tarсодержит фактические устанавливаемые файлы. Поддерживается сжатие архива с помощью gzip , bzip2 , lzma или xz и zstd . Расширение файла изменяется, чтобы указать метод сжатия. [9] [2]
Архив управления
Содержимое архива управления может включать следующие файлы:
control содержит краткое описание пакета, а также другую информацию, такую как его зависимости. [10] [11] [12] [13]
md5sums содержит контрольные суммы MD5 всех файлов в пакете для обнаружения поврежденных или неполных файлов. [14]
conffiles перечисляет файлы пакета, которые следует рассматривать как файлы конфигурации. Файлы конфигурации не перезаписываются во время обновления, если не указано иное. [15]
preinst , postinst , prerm и postrm — это необязательные скрипты, которые выполняются до или после установки или удаления пакета. [15] [16]
config — необязательный скрипт, поддерживающий механизм конфигурации debconf . [17]
shlibs список зависимостей разделяемых библиотек. [18] [19]
Подписанные пакеты
Дистрибутивы на основе Debian поддерживают проверку подписи OpenPGP подписанных пакетов Debian, но у большинства (если не у всех) эта функция отключена по умолчанию. [20] Вместо этого пакеты проверяются путем подписания метаданных репозитория (т. е. Releaseфайлов). Файлы метаданных, в свою очередь, включают контрольные суммы для файлов репозитория в качестве средства проверки подлинности файлов. [21] [22] В настоящее время существует два различных способа подписи отдельных пакетов. Первый выполняется через debsigs/ debsig-verifytoolset, который поддерживается dpkg . [20] [23] Второй выполняется через dpkg-sigпрограмму, которая не поддерживается dpkg , поэтому пакеты необходимо вручную проверять с помощью dpkg-sigпрограммы. [20] [24] [25] [26] Оба формата добавляют новые разделы в архив ar для хранения информации о подписи, но форматы несовместимы друг с другом. [20] Ни одно из изменений формата пакета не указано в официальном руководстве Debian или на странице руководства о формате двоичного пакета. [27] [8]
Fink , порт dpkg и APT на macOS , использует deb-пакеты. [30] [31]
Nexenta OS , устаревшая операционная система на основе OpenSolaris , включала программное обеспечение для управления пакетами Debian и использование пакетов deb.
^ abc Raphaël Hertzog (17 сентября 2010 г.). «Как создавать пакеты Debian с альтернативными методами сжатия». raphaelhertzog.com . Получено 26 августа 2016 г. .
^ "Курсы Debian/Обслуживание пакетов/Управление пакетами". debian.org . 31 октября 2010 г. Получено 26 августа 2016 г.
^ "Обзор инструментов Debian Maintainer / Alien". debian.org . nd . Получено 26 августа 2016 г. .
^ "Глава 3. Компоненты DI или udebs". debian.org . nd Архивировано из оригинала 3 декабря 2011 . Получено 26 августа 2016 .
^ "страница руководства deb-old(5): старый формат двоичных пакетов Debian". manpages.debian.org . Получено 23.04.2017 .
^ Лукас Нуссбаум (16 октября 2014 г.). "Учебник по упаковке Debian" (PDF) . debian.org . Получено 26 августа 2016 г. .
^ ab "страница руководства deb(5): Формат двоичного пакета Debian". manpages.debian.org . Получено 2017-04-23 .
^ abcd "Debian Binary Package Building HOWTO/3. Структура пакета". tldp.org . nd . Получено 26 августа 2016 г. .
^ "страница руководства deb-control(5): Формат главного файла управления пакетами Debian". manpages.debian.org . Получено 23.04.2017 .
^ "Debian Policy Manual Chapter 5 - Control files and their fields". debian.org . 30 Mar 2016 . Получено 26 Aug 2016 .
^ Йосип Родин и Осаму Аоки (9 июня 2015 г.). «Руководство для новых сопровождающих Debian — Глава 4. Необходимые файлы в каталоге Debian». debian.org . Получено 26 августа 2016 г.
^ "Debian Policy Manual Ch7 - Declaring relationships between packages". debian.org . 30 марта 2016 г. . Получено 26 августа 2016 г. .
^ "The Debian Administrator's Handbook - Package Meta-Information". debian-handbook.info . nd . Получено 26 августа 2016 г. .
^ ab "Глава 7. Основы системы управления пакетами Debian". debian.org . 12 августа 2019 г. . Получено 27 мая 2021 г. .
^ "Debian Maintainer Scripts". debian.org . 11 октября 2012 г. Получено 26 августа 2016 г.
^ Джоуи Хесс (nd). "Учебник программиста Debconf - Скрипт конфигурации". fifi.org . Получено 26 августа 2016 г.
^ "dpkg-shlibdeps(1) man page". manpages.debian.org . Получено 2017-04-23 .
^ "Политика Debian - 8.6 Зависимости между библиотекой и другими пакетами". debian.org . 30 марта 2016 г. Получено 26 августа 2016 г.
^ abcd Джо Дамато (28 октября 2014 г.). "HOWTO: GPG sign and verify deb packages and APT repositories". packagecloud.io . Получено 26 августа 2016 г. .
^ "Внутреннее устройство репозитория APT". packagecloud.io . 4 августа 2015 г. Получено 26 августа 2016 г.
^ "SecureApt - Все о безопасном apt". Debian.org . 22 сентября 2015 г. Получено 26 августа 2016 г.
^ "страница руководства debsig-verify(1)". manpages.debian.org . Получено 2017-04-23 .
^ "страница руководства debsigs(1)". manpages.debian.org . Получено 2017-04-23 .
^ Андреас Барт (29 декабря 2003 г.). "Интеграция подписей в архивные файлы Debian". turmzimmer.net . Архивировано из оригинала 2006-02-22 . Получено 29 декабря 2003 г.{{cite web}}: CS1 maint: бот: исходный статус URL неизвестен ( ссылка )
^ "политика для debsigs". turmzimmer.net . 1 февраля 2004 г. Архивировано из оригинала 2006-07-14 . Получено 1 февраля 2004 г.{{cite web}}: CS1 maint: бот: исходный статус URL неизвестен ( ссылка )
^ "The Debian Administrator's Handbook - Ch5. Package System: Tools and Fundamental Principles". debian.org . nd . Получено 26 августа 2016 г. .
^ Кумар, Сарвоттам (2020-07-03). "Обзор Linux Mint 20 "Ulyana": самая полная ОС для всех". Fossbytes . Архивировано из оригинала 2024-05-15 . Получено 2024-05-15 .
^ Saive, Ravi (2022-12-12). "3 способа установки пакетов Deb в Ubuntu, Mint и Debian". www.ubuntumint.com . Архивировано из оригинала 2024-05-15 . Получено 2024-05-15 .
^ "Fink FAQ - Общие вопросы". finkproject.org . 6 июня 2015 г. Получено 26 августа 2016 г.
^ "Fink FAQ - Установка, использование и обслуживание Fink". finkproject.org . 6 июня 2015 г. . Получено 26 августа 2016 г. .
↑ Джей Фримен (nd). «Внедрение Debian APT в iPhone». saurik.com . Получено 26 августа 2016 г.
^ Эрика Садун (28 февраля 2008 г.). «Установка в стиле Debian появилась на iPhone». engadget.com . Получено 26 августа 2016 г.
Внешние ссылки
Часто задаваемые вопросы по Debian: Основы системы управления пакетами Debian
Debreate — мощный конструктор пакетов Debian
Поддержка функций .deb
Манипулирование deb-файлами напрямую с помощью стандартных утилит