мета-данные страницы
Это старая версия документа!
deb пакет
Deb-пакет это обычный архив файлов, содержащий файлы, предназначенные для установки в систему, а так же некоторые служебные файлы, необходимые для того чтобы эту установку сделать гибкой. При помощи программы ar упаковано в один файл:
- Архив control.tar.gz, содержащий скрипты, написанные майнтенером пакета, использующиеся при установке/удалении пакета, а так же другие служебные файлы;
- Архив data.tar.gz, содержащий двоичные файлы (в случаи с бинарным пакетом) программы, ради которой создан пакет;
- Файл debian-binary.
Собирается пакет программой dpkg из специально подготовленной структуры каталогов:
mypkg/ DEBIAN/ path/to/dir/file1 path/to/dirX/fileX
то есть:
- Файлы и каталоги, предназначенные для установки в систему. Их расположение в архиве соответствует положению их в файловой системе если считать от корня. Например файл usr/share/doc/package/copyright в deb-архиве после установки будет находиться в /usr/share/doc/package/copyright (все они будут упакованы в архив data.tar.gz);
- Каталог DEBIAN/, содержащий служебную информацию о пакете (о ней пойдет речь ниже). Содержимое этого каталога при сборке будет упаковано в архив control.tar.gz;
DEBIAN/
Обязательное содержимое
Файл control - этот файл содержит всю описательную информацию на пакет, как то:
- Короткое описание пакета (одна строка);
- Полное описание пакета (один или несколько абзацев);
- Имя и координаты майнтенера, создавшего пакет;
- Номер версии программы (пакета);
- Имя раздела которому принадлежит пакет;
- Перечень пакетов от которых зависит пакет (несколько видов зависимостей: строгие, нестрогие, конфликты итп);
- Уровень важности пакета;
- Имя и версию src-пакета из которого собран данный deb-пакет (если есть таковой);
- Архитектуру для которой данный пакет собран;
- Некоторые другие параметры.
Опциональное содержимое
md5sums
md5sums - Содержит md5 хеши для всех файлов кроме файлов находящихся в каталоге DEBIAN/. Данный файл необязателен для deb-пакета, однако программы верификации пакетов считают пакеты, несодержащие этот файл ошибочными. Может использоваться некоторыми программами администрирования системы для верификации изменений в файловой системе.
Скрипты для установки/удаления пакета
Пакет может содержать несколько скриптов (или программ), которые будут вызываться при установке/удалении пакета. Эти скрипты позволяют майнтенеру выполнять некоторые действия при установке/удалении. Например этими скриптами могут создаваться/удаляться каталоги в которых программа будет хранить свои временные данные, может производиться добавление/удаление программы в меню вашего оконного менеджера, первичное конфигурирование программы и так далее.
Виды скриптов:
preinst- скрипт, вызывающийся перед распаковкой пакета в файловую систему. Обычно при помощи этого скрипта пользователю задаются вопросы, позволяющие позже сконфигурировать программу. Так же возможно производится сбор информации, которая потребуется позже для конфигурирования программы. Если скрипт завершится с кодом ошибки, то пакет не будет установлен в систему;postinst- скрипт, вызывающийся после распаковки пакета. При помощи этого скрипта производится конфигурирование уже установленной программы. Конфигурирование происходит с использованием информации полученной на предыдущем этапе от пользователя. Задавать вопросы пользователю из скрипта postinst не принято.;prerm- скрипт, вызывающийся перед удалением пакета. Может задать пользователю некоторые вопросы, связанные с удалением. Например вопрос что делать с лог-файлами итп. Если скрипт завершится с кодом ошибки, пакет останется установленным в систему;postrm- скрипт, вызывающийся после удаления пакета;config- скрипт, вызывающийся на стадии конфигурирования и переконфигурирования пакета. Это дополнительный скрипт, который используется системой Debconf. Вызывается перед скриптом postinst, используется для того чтобы задать пользователю вопросы в системе диалогов debconf.
В разных ситуациях эти скрипты вызываются с разными опциями. В общем виде пакет может:
- Устанавливаться в систему (первичная установка);
- Устанавливаться новая версия пакета (upgrade);
- Устанавливаться старая версия пакета (downgrade);
- Удаляться из системы.
Соответственно порядок вызова скриптов и опции их вызова может быть разный. Скрипты могут вызываться со следующими параметрами (полный перечень можно найти в Debian-policy):