Русская Википедия:Deb (формат файлов)

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

Шаблон:Значения Шаблон:Файловый формат

Файл:Gdebi.png
Установка deb-пакета в Gdebi

Шаблон:Заголовок со строчной буквы deb (сокр. от Debian) — расширение имён файлов «бинарных» пакетов для распространения и установки программного обеспечения в операционной системе проекта Debian[1] и других, использующих систему управления пакетами dpkg.

deb-old

Изначальный («старый») формат, обозначаемый в документации как deb-old, использовался до версии Debian 0.93. Его устройство следующее: две строки ASCII-текста, за которыми следуют два сцепленных архива формата tar.gz. Первая строка содержит номер версии формата, дополненный до 8 цифр (0,939000 для всех старых форматов). Вторая строка содержит десятичную строку (без начальных нулей), определяющую длину первого архива формата tar.gz. Каждая из этих строк завершается одним символом новой строки[2].

Современный формат

Начиная с 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 — cодержит MD5-суммы всех устанавливаемых файлов;
  • conffiles — список файлов пакета, являющихся конфигурационными, при обновлении файлы из этого списка не перезаписываются новыми, если это не указано отдельно;
  • preinst, postinst, prerm, postrm — необязательные сценарии оболочки, выполняемые соответственно до и после установки или удаления пакета;
  • config — сценарий для debconf — механизма конфигурации;
  • shlibs — список разделяемых библиотек пакета.

Архив data.tar содержит устанавливаемые файлы пакета и при установке разворачивается в систему относительно её корня.

Репозитории

Основной вид распространения deb-пакетов — репозитории. Для описания репозитория обычно используется строчка:

deb http://ftp.debian.org/debian squeeze main contrib non-free
  • deb — указание типа репозитория
  • http://ftp.**** — URI корня репозитория. Может использоваться http:// ftp:// file:// и некоторые другие схемы.
  • squeeze — distribution part. Версия операционной системы.
  • main contrib *** *** — component — Компоненты операционной системы (в основном различающиеся свободой).

Репозиторий, размещенный в сетевых хранилищах, обычно объединяет несколько distribution part с общим хранением пакетов. структура обычно такова.

  • /pool/ — структуированное по имени хранилище скомпилированных пакетов и исходных текстов программ.
  • /dists/ — списки пакетов, входящие в определённый distribution part.

Программное обеспечение

Стандартная программа для управления этими пакетами — dpkg, часто используемая с помощью apt и aptitude.

Deb-пакеты могут быть преобразованы в пакеты других форматов, и наоборот, например, программа alien преобразует RPM-пакеты в формат deb и обратно.

Создание пакетов

Создают пакеты deb обычно с помощью утилит dpkg — в частности, dpkg-buildpackage. Основы создания пакетов описаны в «Руководстве нового сопровождающего Debian»[3] и «Справочнике разработчика Debian»[4][5].

Совсем простые, но малопригодные для серьёзного сопровождения пакеты можно создавать с помощью программы 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

  • Имя пакета;
  • Если данный пакет содержит:
  • «-» и версия пакета
  • «_» и архитектура: «_i386», «_amd64», «_all»…

Примечания

Шаблон:Примечания

Ссылки

Шаблон:Debian Шаблон:Форматы архивов Шаблон:Система управления пакетами