Описание структуры файлов каталога debian

control

Пример файла:

Source: mc Section: utils Priority: optional Maintainer: Stefano Melchior <stefano.melchior@openlabs.it> Uploaders: Ludovic Drolez <ldrolez@debian.org> Build-Depends: debhelper (>> 4.0.0), libglib2.0-dev, libgpmg1-dev |not+linux-gnu, gettext, libslang2-dev Standards-Version: 3.7.2 Package: mc Architecture: any Depends: ${shlibs:Depends} Suggests: perl, mime-support, zip, unzip, bzip2, links | w3m | lynx, arj Conflicts: mc-common, suidmanager (<< 0.52) Replaces: mc-common, manpages-pl (<= 20030210) Description: midnight commander - a powerful file manager GNU Midnight Commander is a text-mode full-screen file manager. It uses a two panel interface and a subshell for command execution. It includes an internal editor with syntax highlighting and an internal viewer with support for binary files. Also included is Virtual Filesystem (VFS), that allows files on remote systems (e.g. FTP, SSH, SMB servers) and files inside archives to be manipulated like real files.

Файл разбит на несколько секций: Source и Package.

Source — секция описывающая пакет с исходниками. Помимо этого она содержит общие поля для всех бинарных пакетов.

Package — секция описывающая бинарный пакет. В ней указывается Описания и зависимости для бинарного пакета. В одном файле секция может встречаться несколько раз. Каждая описывает отдельный бинарный пакет.

Описание полей

Source – Название пакета

Section – это название раздела, к которому относится данный пакет. Debian разбит на несколько разделов: раздел main (основной) содержит свободное программное обеспечение, non-free (не-свободное) содержит пакеты, которые не совсем отвечают определению свободного программного обеспечения, и contib, где находятся пакеты, которые, являясь свободным программным обеспечением, зависят от не-свободного программного обесепеченя. В каждом разделе существуют логические подразделы, определяющие что пакет из данного подраздела делает. Таким образом, существует раздел ‘admin’, где находятся программы для администрирования системы, раздел ‘base’ — для основных пакетов, раздел ‘devel’ содержит инструменты разработки программного обеспечения, ‘doc’ — документацию, ‘libs’ — библиотеки, ‘mail’ — почтовых сервером и программ чтения почты, ‘net’ — для сетевых приложений, ‘x11’ — программ, работающих под X Window System, и много много других.

Priority – насколько важен данный пакет. Значения полей Section и Priority пока используется только программой dselect, которая позволяет пользователю сортировать пакеты по значениям этих полей, они также могут (и, скорее всего, будут) замещены сопровождающими ftp-серверами.

Maintainer – имя и адрес разработчика пакета, человек который создает пакеты

Author – имя и адрес человека, который создал программу

Upstream maintainer – имя и адрем человека, который осуществляет работу над программой в данный момент времени

Standards-Version – версия документа «Debian Policy», стандартам которого следует данный пакет

Package – имя двоичного пакета

Architecture – архитектура процессора, для которого может быть скомпилирован двоичный пакет. Если значение 'any', то при сборке будет поставлена архитектура машины, на которой был откомпилирован пакет. Если необходима поддержка все платформ, то необходимо написать 'all'

Depends – одно из ключевых мест. Описание названий пакетов, от которых зависит данный пакет. Т.е. во время установки данного пакета описанные в этом поле пакеты обязательно уже должны быть установлены.Формат полей зависимостей(конфликтов) одинаков: это список имен пакетов, разделенных запятой. Здесь также могут быть указаны списки имен альтернативных пакетов, разделенных вертикальной чертой |. Для каждого пакета в списке вы можете ограничить допустимость указанного пакета по версии. Версии указываются в круглых скобках после имени пакета и должны состоять из символа сравнения, за которым следует номер версии. Допустимыми символами сравнения являются: «, ⇐, =, >=, и » для “строго раньше чем”, “раньше или равно”, “в точности равно”, “равно или позже” и “строго позже чем” соответственно.

Recommends – dselect не установит пакет, если описанные здесь пакеты не установлены. Однако программы dpkg и apt-get должны позволить сделать это. Лучше использовать данный тип зависимостей для пакетов, которые бы не использовались вместе с вашим пакетом только в нестандартных случаях.

Suggests – когда пользователь устанавливает ваш пакет, программа dselect предложит ему также установить пакеты, перечисленные в списке зависимостей Suggests. Программы dpkg и apt этого делать не будут. Используйте данный тип зависимостей для пакетов, которые могут расширить функциональность вашего пакета, и, таким образом, увеличить его полезность. 1) Взято с оффициального сайта Debian: http://www.debian.org/doc/maint-guide/

Pre-Depends –Данный тип зависимостей строже, чем зависимости типа Depends. Данный пакет не будет установлен, если пакеты, указанные в списке зависимостей Pre-Depends, уже не установлены или не настроены. Используйте этот тип зависимостей очень осторожно. Другими словами, не используйте его никогда!

Conflicts – Данный пакет не будет установлен пока пакеты, перечисленные в списке зависимостей Conflicts, не удалены из системы. Следует применять этот тип зависимостей, если программа гарантировано не будет работать (или же может вызвать серьезные повреждения системы), если присутвует какой-нибудь определенный пакет.

Provides – В случае, когда для какого-то типа пакетов существуют несколько альтернатив, вводятся так называемый виртуальные пакеты. Применить данный параметр можно когда программа реализует функциональность существующего виртуального пакета.

Replaces – Следует использовать данный тип зависимостей в случае, когда пакет заменяет файлы из другого пакета, или же полностью заменяет другой пакет (в этом случае, также необходимо использовать зависимость типа Conflicts:). Тогда файлы из указанного пакета будут удалены перед установкой текущего

$(shlibs:Depends) – Макрос , которая исопльзуется deb-helper и позволяет программе dh_gencontrol заменить ее названиями пакетов разделяемых библиотек — например, libc6 или xlib6g — которыми пользуется программа (список библиотек позволяет получить программа dh_shlibdeps2) dh_shlibdeps устанавливает в значение переменной окружения $(shlibs:Depends) .

$(misc:Depends) – Макрос раскрывается многими программами debhelper. Например, если используется dh_installdebconf, то в зависимостях необходимо указать debconf, для dh_installxfonts понадобятся xutils. Эти зависимости и будут автоматически сгенерированы;