[ Заметка об авторских правах ] [ Содержание ] [ вперед ]

Руководство начинающего разработчика Debian
Глава 1 Хорошее начало — половина дела


Этот документ описывает процесс создания пакетов для Debian GNU/Linux. В этом руководстве мы пытаемся следовать римской поговорке Longum iter est per preaecepta, breve et efficax per exempla! (It's a long way by the rules, but short and efficient with examples!)[1].

Одна из сильных, по сравнению с другими дистрибутивами, сторон Debian GNU/Linux — это система управления пакетами. Несмотря на то, что для Debian уже существует очень много пакетов, может случиться так, что вам понадобится установить программу, для которой не существует соответствующего пакета. Это может заставить вас задуматься о том, как создать свой собственный пакет. :) Да, вам понадобятся некоторые знания о программировании под Unix, но ни в коем случае вы не обязаны быть гуру.

Последняя версия этого документа всегда доступна как http://www.debian.org/doc/maint-guide, вы также можете найти этот документ в пакете maint-guide-ru[2].


1.1 Программы, которые вам понадобятся

Сначала вы должны установить все необходимые для разработки пакеты. Заметьте, что ниже приведенный список не содержит пакеты приоритетов ‘essential’ или ‘required’ — эти пакеты уже установлены на вашу машину.

На момент написания этого документа официальной стабильной версией был выпуск 2.1 (‘slink’), а выпуск 2.2 (‘potato’) только создавался. Поэтому большинство пакетов, упомянутых здесь, взяты из ‘potato’.

Нижеперечисленные пакеты присутствуют в стандартной поставке Debian 2.1, что означает, что скорее всего они уже установлены на вашей машине (как, впрочем, и пакеты, перечислинные в зависимостях к этим). Несмотря на это, мы рекомендуем вам при помощи команды ‘dpkg -s имя-пакета’ проверить, что они установлены.

binutils
Программы, входящие в этот пакет, позволяют работать с объектными файлами — файлы, из которых «собираются» программы. (см. ‘info binutils’)

cpp
Препроцессор языка C. (см. cpp(1))

cpio
Программа архивирования, как, например, tar или zip (см. cpio(1)).

dpkg-dev
Этот пакет содержит все утилиты, необходимые для распаковки, создания и загрузки исходных пакетов Debian (см. dpkg-source(1)).

file
Эта полезная программа позволяет определить тип файла (см. file(1)).

gcc
Компилятор языка C от GNU. Большинство программ Linux написаны на языке C. Однако если ваша программа написана на каком-то другом языке программирования, например, C++, Fortran, Pascal, или другим, вы должны установить соответствующий пакет (g++, g77, gpc или другой). (см. gcc(1), g++(1), g77(1), gpc(1))

libc6-dev
Библиотека языка C и файлы заголовков, необходимые программе gcc. Несмотря на то, что некоторые программы все еще рекомендуют и/или используют libc5, мы рекомендуем вам использовать новую версию (libc6). (см. ‘info libc’)

make
Обычно процесс создания программы состоит из нескольких шагов, которые необходимо выполнять в определенном порядке. Вместо того, чтобы вводить одни и те же команды снова и снова, вы можете воспользоваться этой программой для автоматизации всего процесса. В некоторых случаях следует использовать утилиты imake и xmkmf (они позволяют создавать make-файлы из файлов специального вида). Многие современные программы создают сценарий configure и make-файлы при помощи утилит autoconf и automake, поэтому вам также могут понадобиться эти утилиты (см. ‘info make’, imake(1), xmkmf(1), autoconf(1), automake(1)).

patch
Эта очень полезная программа изменяет исходный файл в соответствии со списком различий между файлами, полученным при помощи программы diff (см. patch(1)).

perl5-5.005
Perl — один из наиболее используемых интерпретируемых языков в Un*x-системах. Его часто называют “Unix's Swiss Army Chainsaw” (Универсальная пила) (см. perl(1)).

Из раздела ‘devel’ вам могут понадобиться следующие пакеты:

dh-make
debhelper
Программа dh_make необходима для создания скелета будущего пакета. При этом в получающихся управляющих файлах будут использованы программы из пакета debhelper. При создании пакетов вовсе не обязательно использовать эти программы, но мы очень рекомендуем их начинающим разработчикам. Они позволяют сильно упростить процесс создания и поддержки пакетов (см. dh_make(1), debhelper(1), /usr/share/doc/debhelper/README).

devscripts
Этот пакет содержит несколько простых и полезных, но не являющихся необходимыми для создания пакетов, сценариев (см. /usr/share/doc/devscripts/README.gz).

fakeroot
Эта утилита позволит вам создавать пакеты, не пользуясь привилегиями пользователя root (которые необходимы на некоторых этапах) (см. fakeroot(1)).

lintian
Эта программа предназначена для проверки пакетов Debian. Она позволяет убедиться, что при создании пакета не было допущено ни одной из «стандартных» ошибок (см. lintian(1), /usr/share/doc/lintian/lintian.html/index.html).

И, наконец, вам следует установить очень важные пакеты из раздела doc:

debian-policy
Этот пакет содержит описание структуры архива, разнообразных моментов, связанных с построением операционной системы, «Стандарт иерархии файловой системы». Также (что для вас важнее всего) пакет содержит требования, которым должен удовлетворять пакет Debian, для того, чтобы он мог быть включен в дистрибутив (см. /usr/share/doc/debian-policy/policy.html/index.html).

developers-reference
Данный пакет содержит информацию для разработчика пакетов, не относящуюся непосредственно к техническим вопросам создания пакетов. В частности, вы найдете здесь информацию о структуре архива, о том, как переименовывать пакеты, как переводить пакеты в «брошенное» состояние, как начать поддержку «брошенного» пакета, как обновление пакета может быть произведено не его разработчиком, как работать с ошибками в пакетах, когда и как обновлять пакеты и т.п. (см. /usr/share/doc/developers-reference/developers-reference.html/index.html).

packaging-manual
Здесь вы найдете описание технических вопросов создания двоичных пакетов и пакетов с исходными текстами (см. /usr/share/doc/packaging-manual/packaging.html/index.html).

Вам также понадобится (для создания цифровой подписи к пакету) программа зашифрования — либо PGP (пакеты pgp-*), либо GPG (пакет gnupg). Это особенно важно, если вы хотите предоставлять ваш пакет другим людям (вне всякого сомнения, вы будете делать это после того, как ваша работа будет включена в дистрибутив Debian). Однако, в силу несколько странного экспортного законодательства США, вы не можете загрузить необходимые программы зашифрования с ближайшего зеркала Debian. Несмотря на это, Debian предоставляет эти пакеты через сервер, физически находящийся в стране, отличной от США, и называемый non-US.debian.org. На вашем зеркале вы можете найти файл README.non-US, который описывает как вы можете найти ближайшее зеркало этого сервера.

Перед началом работы над созданием пакета мы рекомендуем вам прочитать документацию на все программы, которые вы будете использовать. Это может сначала показаться излишеством, но потом вы будете очень рады, что прислушались к нашему совету…

Внимание: Пакет debmake содержит программы, аналогичные по функциональности программам, входящим в пакет dh-make. Описание пакета debmake не приводится в этом документе. Вы можете найти дополнительную информацию на странице the Debmake manual.


1.2 Прочая информация

Вы можете создавать пакеты двух типов: двоичные пакеты и пакеты с исходными текстами. Последние содержат код, который позволяет скомпилировать программу и создать пакет. Двоичные пакеты содержат только скомпилированную программу. Пожалуйста, не путайте исходные тексты программы и пакет с исходными текстами.

Debian использует термин сопровождающий либо разработчик пакета (maintainer) для человека, который создает пакеты, автор (author) для человека, который создал программу, и активный автор (upstream maintainer) для человека, осуществляющего работу над программой в настоящий момент времени. Обычно автор и активный автор являются одним и тем же человеком (а иногда тот же человек выступает и в роли сопровождающего). Если вы создали программу и хотите, чтобы ее включили в Debian, вы можете сделать это, подав соответствующее заявление.

Для того, чтобы ваш пакет попал в следующий выпуск Debian (почему бы и нет, если программа полезна?), вы должны стать официальным разработчиком Debian. Этот процесс описан в «Руководстве разработчика». Пожалуйста, прочитайте этот документ.


[ Заметка об авторских правах ] [ Содержание ] [ вперед ]
Руководство начинающего разработчика Debian
версия 1.0 от 27 сентября 1999 года.
Josip Rodin jrodin@jagor.srce.hr
Перевод: Михаил Соболев, mss@transas.com
Перевод: Алексей Выскубов, alexey@pepper.spb.ru