deb (формат файлов)
Пакет Debian (dpkg) | |
---|---|
| |
Расширение |
.deb [1], .udeb [1] или .ipk [1] |
MIME-тип | application/vnd.debian.binary-package[1][2] |
Разработчик | Debian |
Тип формата | Система управления пакетами |
Содержит | Программное обеспечение и метаданные в архивах .tar.bz2 или .tar.gz |
Расширен из | ar[d] и tar |
deb (сокр. от Debian) — расширение имён файлов «бинарных» пакетов для распространения и установки программного обеспечения в операционной системе проекта Debian[3] и других, использующих систему управления пакетами dpkg.
deb-old[править | править код]
Изначальный («старый») формат, обозначаемый в документации как deb-old, использовался до версии Debian 0.93. Его устройство следующее: две строки ASCII-текста, за которыми следуют два сцепленных архива формата tar.gz. Первая строка содержит номер версии формата, дополненный до 8 цифр (0,939000 для всех старых форматов). Вторая строка содержит десятичную строку (без начальных нулей), определяющую длину первого архива формата tar.gz. Каждая из этих строк завершается одним символом новой строки[4].
Современный формат[править | править код]
Начиная с 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»[5] и «Справочнике разработчика Debian»[6][7].
Совсем простые, но малопригодные для серьёзного сопровождения пакеты можно создавать с помощью программы 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
- Имя пакета;
- Если данный пакет содержит:
- заголовочные и другие файлы для разработчиков → «-dev»;
- отладочную информацию → «-dbg»;
- файлы документации → «-doc»;
- исполняемые файлы (обычно идущие с библиотеками) → «-bin»;
- «-» и версия пакета
- После основной версии может стоять номер ревизии пакета в виде «-1», «-2»…
- Если изменения касаются только соответствия критериям Debian по определению свободного ПО, то «.dfsg-1», «.dfsg-2»…
- Для обновлений безопасности внутри стабильной ветки Debian добавляется «etch2», «lenny1»…
- Если пакет загружен в репозиторий не одним из основных мейнтейнеров (англ. NMU-upload), то добавляется «+1», «+2»…
- «_» и архитектура: «_i386», «_amd64», «_all»…
Примечания[править | править код]
- ↑ 1 2 3 4 TrID — 2003.
- ↑ Current // https://manpages.debian.org/unstable/dpkg-dev/deb.5.en.html#Current
- ↑ Архивированная копия . Дата обращения: 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 года.
Ссылки[править | править код]
- The Debian GNU/Linux FAQ . — Основы системы управления пакетами Debian. Дата обращения: 28 октября 2010. Архивировано 14 апреля 2013 года.
- HOWTO: Use dpkg to Install .deb Files (англ.). — Статья «Что делать с .deb файлами?» Дата обращения: 28 октября 2010. Архивировано из оригинала 14 марта 2012 года.
- Gdebi (англ.). Дата обращения: 28 октября 2010.
- Пакетная система Debian: низкоуровневая работа с deb-пакетами . Дата обращения: 28 октября 2010. Архивировано из оригинала 14 марта 2012 года.