Меню
Главная
Случайная статья
Настройки
|
deb (сокр. от Debian) — расширение имён файлов «бинарных» пакетов для распространения и установки программного обеспечения в операционной системе проекта Debian[2] и других, использующих систему управления пакетами dpkg.
Содержание
deb-old
Изначальный («старый») формат, обозначаемый в документации как deb-old, использовался до версии Debian 0.93. Его устройство следующее: две строки ASCII-текста, за которыми следуют два сцепленных архива формата tar.gz. Первая строка содержит номер версии формата, дополненный до 8 цифр (0,939000 для всех старых форматов). Вторая строка содержит десятичную строку (без начальных нулей), определяющую длину первого архива формата tar.gz. Каждая из этих строк завершается одним символом новой строки[3].
Современный формат
Начиная с Debian версии 0.93 deb-файл представляет собой архив формата ar.
Обычно архив содержит 3 файла в нижеприведенной последовательности:
- debian-binary — текстовый файл, содержащий версию формата deb-пакета (современный формат — версия 2.0);
- control.tar — tar-архив, содержащий информацию и скрипты установки пакета, может быть сжат с помощью gzip или xz, тип архива отображается в имени файла (к примеру control.tar.gz).
- data.tar — tar-архив, содержащий дерево устанавливаемых файлов пакета, может быть сжат с помощью gzip, bzip2, lzma или xz, тип архива отображается в имени файла (к примеру data.tar.gz).
Архив control.tar содержит информацию о поставляемом в данном пакете программном обеспечении:
- control — содержит краткую информацию о пакете программного обеспечения: наименование, версия, описание, целевая архитектура, зависимости от других пакетов и так далее;
- md5sums — содержит MD5-суммы всех устанавливаемых файлов;
- conffiles — список файлов пакета, являющихся конфигурационными, при обновлении файлы из этого списка не перезаписываются новыми, если это не указано отдельно;
- preinst, postinst, prerm, postrm — необязательные сценарии оболочки, выполняемые соответственно до и после установки или удаления пакета;
- config — сценарий для debconf — механизма конфигурации;
- shlibs — список разделяемых библиотек пакета.
Архив data.tar содержит устанавливаемые файлы пакета и при установке разворачивается в систему относительно её корня.
Репозитории
Основной вид распространения deb-пакетов — репозитории. Для описания репозитория в системе APT обычно используется строка, состоящая из следующих компонентов:
- Тип репозитория (deb).
- URI корня репозитория, начинающийся со схемы (http:// ftp:// file:// и т. д.), за которой следует адрес.
- Версия операционной системы. Может принимать вид имени ветки (oldoldstable, oldstable, stable, testing, unstable, experimental) или имени дистрибутива (bullseye, bookworm, trixie, forky, sid и т. д.).
- Компоненты операционной системы, в основном различающиеся свободой (main, contrib, non-free).
Например:
deb http://ftp.debian.org/debian stable main contrib non-free
Программное обеспечение
Стандартная программа для управления этими пакетами — dpkg, часто используемая с помощью apt и aptitude.
Deb-пакеты могут быть преобразованы в пакеты других форматов, и наоборот, например, программа alien преобразует RPM-пакеты в формат deb и обратно.
Создание пакетов
Создают пакеты deb обычно с помощью утилит dpkg — в частности, dpkg-buildpackage. Основы создания пакетов описаны в «Руководстве нового сопровождающего Debian»[4] и «Справочнике разработчика Debian»[5][6].
Совсем простые, но малопригодные для серьёзного сопровождения пакеты можно создавать с помощью программы CheckInstall.
Debhelper — коллекция небольших программ, которые могут быть использованы в файлах debian/rules (наборах инструкций для сборки deb-пакета). Создана Джо Хессом с целью предоставить создателям пакетов Debian возможность писать структурно более простые debian/rules-файлы и повторно использовать готовые стабильные и удобные решения для многих подзадач сборки пакетов. По состоянию на конец 2010-х годов содержит более 60 небольших программ.
Часто вместе с программами debhelper используют написанную Крейгом Смоллом утилиту dh_make (не являющуюся его частью), которая копирует шаблоны всех файлов, необходимых для постройки deb-пакета из исходного кода программы. Эти шаблоны могут включать информацию, которую предоставил пользователь, и краткую информацию о том, как строится программа из исходного кода. После запуска dh_make, как правило, всё равно необходимо отредактировать большинство файлов шаблонов для того, чтобы построить deb-пакет.
Система CDBS — набор make-правил, использующий debhelper и позволяющий пользователям писать ещё более короткие файлы сборки deb-пакетов.
udeb
Проект debian-installer ввёл формат udeb («µdeb», «микро-deb»), который идентичен формату deb, но не полностью следует политике Debian, в частности, не содержит документации и должен использоваться только инсталлятором Debian (Debian-Installer), который является новым установщиком Debian, разработанным для Debian Sarge. Программа udpkg, используемая для работы с такими микропакетами, имеет ограниченные возможности по сравнению с dpkg, в частности, по связям пакетов. Причина возникновения такого формата — недовольство ядра сообщества Debian наличием пакетов, не отвечающих политике дистрибутива, поэтому для них было выбрано другое имя, чтобы подчеркнуть это и не допустить их непреднамеренную установку на рабочую систему.
Именование пакетов
Структура имени пакетов такова: имя-дополнение-версия_архитектура.deb
- Имя пакета;
- Если данный пакет содержит:
- «-» и версия пакета
- После основной версии может стоять номер ревизии пакета в виде «-1», «-2»...
- Если изменения касаются только соответствия критериям Debian по определению свободного ПО, то «.dfsg-1», «.dfsg-2»...
- Для обновлений безопасности внутри стабильной ветки Debian добавляется «etch2», «lenny1»...
- Если пакет загружен в репозиторий не одним из основных мейнтейнеров (англ. NMU-upload), то добавляется «+1», «+2»...
- «_» и архитектура: «_i386», «_amd64», «_all»...
Примечания
- Media Type Registration for vnd.debian.binary-package (неопр.). Internet Assigned Numbers Authority. Дата обращения: 21 мая 2014.
- Архивированная копия (неопр.). Дата обращения: 11 июня 2019. Архивировано 15 марта 2016 года.
- Страница руководства deb-old (неопр.). Дата обращения: 22 июня 2011. Архивировано 1 ноября 2011 года.
- Руководство начинающего разработчика Debian (неопр.). Дата обращения: 11 июня 2019. Архивировано 22 декабря 2018 года.
- Debian Developer's Reference — документация developers-reference (неопр.). Дата обращения: 11 июня 2019. Архивировано 22 декабря 2018 года.
- Руководства для разработчиков Debian (неопр.). Дата обращения: 11 июня 2019. Архивировано 22 декабря 2018 года.
Ссылки
|
|