мета-данные страницы
  •  

Это старая версия документа!


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-пакет (если есть таковой);
  • Архитектуру для которой данный пакет собран;
  • Некоторые другие параметры.

подробнее о control-файле

Опциональное содержимое

md5sums

md5sums - Содержит md5 хеши для всех файлов кроме файлов находящихся в каталоге DEBIAN/. Данный файл необязателен для deb-пакета, однако программы верификации пакетов считают пакеты, несодержащие этот файл ошибочными. Может использоваться некоторыми программами администрирования системы для верификации изменений в файловой системе.

Скрипты для установки/удаления пакета

Пакет может содержать несколько скриптов (или программ), которые будут вызываться при установке/удалении пакета. Эти скрипты позволяют майнтенеру выполнять некоторые действия при установке/удалении. Например этими скриптами могут создаваться/удаляться каталоги в которых программа будет хранить свои временные данные, может производиться добавление/удаление программы в меню вашего оконного менеджера, первичное конфигурирование программы и так далее.

Виды скриптов:

  • preinst - скрипт, вызывающийся перед распаковкой пакета в файловую систему. Обычно при помощи этого скрипта пользователю задаются вопросы, позволяющие позже сконфигурировать программу. Так же возможно производится сбор информации, которая потребуется позже для конфигурирования программы. Если скрипт завершится с кодом ошибки, то пакет не будет установлен в систему;
  • postinst - скрипт, вызывающийся после распаковки пакета. При помощи этого скрипта производится конфигурирование уже установленной программы. Конфигурирование происходит с использованием информации полученной на предыдущем этапе от пользователя. Задавать вопросы пользователю из скрипта postinst не принято.;
  • prerm - скрипт, вызывающийся перед удалением пакета. Может задать пользователю некоторые вопросы, связанные с удалением. Например вопрос что делать с лог-файлами итп. Если скрипт завершится с кодом ошибки, пакет останется установленным в систему;
  • postrm - скрипт, вызывающийся после удаления пакета;
  • config - скрипт, вызывающийся на стадии конфигурирования и переконфигурирования пакета. Это дополнительный скрипт, который используется системой Debconf. Вызывается перед скриптом postinst, используется для того чтобы задать пользователю вопросы в системе диалогов debconf.

В разных ситуациях эти скрипты вызываются с разными опциями. В общем виде пакет может:

  • Устанавливаться в систему (первичная установка);
  • Устанавливаться новая версия пакета (upgrade);
  • Устанавливаться старая версия пакета (downgrade);
  • Удаляться из системы.

Соответственно порядок вызова скриптов и опции их вызова может быть разный. Скрипты могут вызываться со следующими параметрами (полный перечень можно найти в Debian-policy):

параметры