etc:common_activities:slind:deb_producer:files_description

Описание структуры файлов каталога 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)
  • Pre-Depends –Данный тип зависимостей строже, чем зависимости типа Depends. Данный пакет не будет установлен, если пакеты, указанные в списке зависимостей Pre-Depends, уже не установлены или не настроены. Используйте этот тип зависимостей очень осторожно. Другими словами, не используйте его никогда! :-)
  • Conflicts – Данный пакет не будет установлен пока пакеты, перечисленные в списке зависимостей Conflicts, не удалены из системы. Следует применять этот тип зависимостей, если программа гарантировано не будет работать (или же может вызвать серьезные повреждения системы), если присутвует какой-нибудь определенный пакет.
  • Provides – В случае, когда для какого-то типа пакетов существуют несколько альтернатив, вводятся так называемый виртуальные пакеты. Применить данный параметр можно когда программа реализует функциональность существующего виртуального пакета.
  • Replaces – Следует использовать данный тип зависимостей в случае, когда пакет заменяет файлы из другого пакета, или же полностью заменяет другой пакет (в этом случае, также необходимо использовать зависимость типа Conflicts:). Тогда файлы из указанного пакета будут удалены перед установкой текущего
  • $(shlibs:Depends) – Макрос , которая исопльзуется deb-helper и позволяет программе dh_gencontrol заменить ее названиями пакетов разделяемых библиотек — например, libc6 или xlib6g — которыми пользуется программа (список библиотек позволяет получить программа dh_shlibdeps2).
  • $(misc:Depends) – Макрос раскрывается многими программами debhelper. Например, если используется dh_installdebconf, то в зависимостях необходимо указать debconf, для dh_installxfonts понадобятся xutils. Эти зависимости и будут автоматически сгенерированы;

changelog

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

mc (1:4.6.1-6) unstable; urgency=medium
 
  * debian/rules modified to fix a FTBFS during the 2nd build. Closes: #384302
  * added 05_symcrash.patch to fix a segfault (should be in mc's CVS). Closes: #383341
  * mpg123 title view fixed. Closes: #391644
 
 -- Ludovic Drolez <ldrolez@debian.org>  Thu, 24 Aug 2006 22:19:03 +0200
 
mc (1:4.6.1-5) unstable; urgency=low
 
  * Removed the Ctrl-t accelerator from 60_recode.patch. Closes: #380417
  * Modified 47_mc.menu.patch to use 'editor' instead of the hardcoded 'vi'
    so that mc makes use of /etc/alternatives. Closes: #373144
  * .tar view fixed in 01_mc.ext.in.mime.patch. Closes: #381353
  * still 68 bugs in the BTS...
 
 -- Ludovic Drolez <ldrolez@debian.org>  Mon, 31 Jul 2006 22:25:47 +0200
  .
  .
  .
mc (4.1.22-2) unstable; urgency=low
 
  * Adapted debian/changelog to reflect official Debian release history
  * Added debian/menu file from former maintainer
  * Closing supposedly outdated bugs #9868, #14744, #14768, #16050
    and #11968 due to increase of upstream version number.
 
 -- Paul Seelig <pseelig@goofy.zdv.uni-mainz.de>  Fri, 16 Jan 1998 23:41:32 +0100
 
mc (4.1.22-1) unstable; urgency=low
 
  * New maintainer
  * New upstream version
 
 -- Paul Seelig <pseelig@goofy.zdv.uni-mainz.de>  Fri, 16 Jan 1998 17:41:32 +0100
  .
  .
  .

changelog представляет из себя последовательность изменений, расположенных в хронологическом порядке (от последний к первым). Одна запись соответсвует одной новой версии(сборки текущей версии).

В первой строке записи содержиться информация пакете

  • имя пакета (в примере выше это mc)
  • описание версии пакета в формате Эпоха:Версия-Сборка
  • ветка в репозитарии (??)
  • срочность

Затем идет описание изменений. В принципе особых требований здесь нет, но хорошо придержитваться общих стандартов. Каждое изменение начинается со знака *

После списка изменений идут контакты разработчика, собравшего пакет, и время когда он был собран.

1)
Взято с оффициального сайта Debian: http://www.debian.org/doc/maint-guide/
2)
dh_shlibdeps устанавливает в значение переменной окружения $(shlibs:Depends)
etc/common_activities/slind/deb_producer/files_description.txt · Last modified: 2008/01/03 02:32 by 127.0.0.1