[ назад ] [ Содержание ] [ 1 ] [ 2 ] [ 3 ] [ 4 ] [ 5 ] [ 6 ] [ вперед ]


Руководство начинающего разработчика 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).

Вам также понадобится (для создания цифровой подписи к пакету) программа зашифрования — либо 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. Этот процесс описан в «Руководстве разработчика». Пожалуйста, прочитайте этот документ.


[ назад ] [ Содержание ] [ 1 ] [ 2 ] [ 3 ] [ 4 ] [ 5 ] [ 6 ] [ вперед ]


Руководство начинающего разработчика Debian

версия 1.0.2, 10 June 2001 (?)

Josip Rodin joy-mg@debian.org
Перевод: Михаил Соболев, mss@transas.com
Перевод: Алексей Выскубов, alexey@pepper.spb.ru