Руководство начинающего разработчика Debian - Обязательные файлы в каталоге debian

       

Файл rules


Теперь вернемся в каталог debian и взглянем на файл rules, который используется программой dpkg-buildpackage(1) для создания пакета. Обычно это просто еще один управляющий файл для программы make. Только он отличается от того, что предлагается вместе с исходными текстами.

Каждый файл rules, как и любой другой Makefile, содержит правила, определяющие как необходимо выполнять те или иные действия. Правила состоят из имени цели, имен файлов, и названий действий, которые необходимо выполнить (например, ‘build:’ или ‘install:’). Правила, которые вы хотите выполнить, должны быть указаны в командной строке (например, ‘debian/rules build’ или ‘make -f debian/rules install’). После имени цели вы можете указать имя другой цели, название программы или файла, от которых зависит данная цель. Затем вы можете указать произвольной количество команд (первым символом в строке с командой должен быть символ табуляции!), пустая строка завершает правило[5] Комментарии начинаются с символа диеза (‘#’) и идут до конца строки. Вы можете обращаться к правилам либо из других правил, либо из командной строки ‘debian/rules clean’).

Возможное недопонимание должно уйти, после того, как вы посмотрите на содержимое файла rules, который был создан программой dh_make. Вы также должны прочитать документацию к программе make.

Самое главное, что вы должны помнить о файле rules, созданном программой dh_make, это то, что этот файл представляет собой рекомендацию. Он будет работать для простых пакетов, но для более сложных вам, скорее всего, понадобится что-то добавить или удалить. Единственное, что вы не должны менять, это имена правил, так как все инструменты используют эти имена в соответствии с «Руководством по созданию пакетов». 1 #!/usr/bin/make -f 2 # Made with the aid of dh_make, by Craig Small 3 # Sample debian/rules that uses debhelper. GNU copyright 1997 by Joey Hess. 4 # Some lines taken from debmake, by Christoph Lameter. 5 6 # Uncomment this to turn on verbose mode. 7 #export DH_VERBOSE=1 8 9 # This is the debhelper compatability version to use. 10 export DH_COMPAT=1 11 12 build: build-stamp 13 build-stamp: 14 dh_testdir 15 16 # Add here commands to compile the package. 17 $(MAKE) 18 19 touch build-stamp 20 21 clean: 22 dh_testdir 23 dh_testroot 24 rm -f build-stamp 25 26 # Add here commands to clean up after the build process. 27 -$(MAKE) clean 28 29 dh_clean 30 31 install: build-stamp 32 dh_testdir 33 dh_testroot 34 dh_clean -k 35 dh_installdirs 36 37 # Add here commands to install the package into debian/tmp. 38 $(MAKE) install DESTDIR=`pwd`/debian/tmp 39 40 # Build architecture-independent files here. 41 binary-indep: build install 42 # We have nothing to do by default. 43 44 # Build architecture-dependent files here. 45 binary-arch: build install 46 # dh_testversion 47 dh_testdir 48 dh_testroot 49 # dh_installdebconf 50 dh_installdocs 51 dh_installexamples 52 dh_installmenu 53 # dh_installemacsen 54 # dh_installpam 55 # dh_installinit 56 dh_installcron 57 dh_installmanpages 58 dh_installinfo 59 # dh_undocumented 60 dh_installchangelogs 61 dh_link 62 dh_strip 63 dh_compress 64 dh_fixperms 65 # You may want to make some executables suid here. 66 dh_suidregister 67 # dh_makeshlibs 68 dh_installdeb 69 # dh_perl 70 dh_shlibdeps 71 dh_gencontrol 72 dh_md5sums 73 dh_builddeb 74 75 binary: binary-indep binary-arch 76 .PHONY: build clean binary-indep binary-arch binary install


(номера строк добавлены)

Скорее всего, вы уже знакомы с форматом строки 1. Такая строка означает, что данный файл должен обрабатываться программой make.

Строки с 12-й по 19-ую описывают правило ‘build’ (и подчиненной правило ‘build-stamp’), которое выполняет Makefile, идущий вместе с программой, и который позволяет скомпилировать программу.

Правило ‘clean’, описанное в строках 21-29, удаляет все автоматически созданные файлы. Это правило должно успешно выполняться всегда (даже, если файлов, которые нужно было бы удалять, нет). Поэтому используйте форсирующие параметры (например, для программы rm это ‘-f’) и игнорируйте результат выполнения команды (для этого поместите ‘-’ перед ее названием).

Процесс установки — правило ‘install’ — начинается в строке 31. Основное, что оно выполняет, это цель ‘install’ из файла исходного файла Makefile — установка происходит в каталог debian/tmp — вот зачем мы использовали переменную $(DESTDIR) для указания корневого каталога при установке программы.

Как указано в комментарии, правило ‘binary-indep’ в строках 41-43 используется для построения платформо-независимых пакетов, но в нашем примере такие отстутвуют. Если у вашего пакета в файле debian/control написано ‘Architecture: all’, то все команды для создания пакета вы должны поместить сюда, а правило ‘binary-arch’ должно быть пустым.

Следующее правило — ‘binary-arch’ (строки 45-73) — использует несколько небольших утилит из пакета debhelper, которые выполняют действия, необходимые для того, чтобы ваш пакет удовлетворял требованиям Debian.

Названия команд начинаются с dh_, здесь мы приводим список команд и описание того, что они делают:

dh_testdir(1) проверяет, что вы находитесь в правильном каталоге (/usr/local/gentoo/gentoo-0.9.12/);

dh_testroot(1) проверяет, что вы обладаете необходимыми привилегиями (пользователя root);

dh_installmanpages(1) копирует страницы руководства;

dh_strip(1) удаляет отладочную информацию из исполняемых файлов, что позволяет сделать их меньше;

dh_compress(1) сжимает страницы Руководства и файлы документации программой gzip, если размер соответствующего файла превышает 4 Кбайт;



dh_installdeb(1) копирует управляющие файлы пакета в каталог debian/tmp/DEBIAN;

dh_shlibdeps(1) определяет зависимости для исполняемых файлов;

dh_gencontrol(1) создает и устанавливает файл control;

dh_md5sums(1) вычисляет MD5-суммы для всех файлов в пакете;

Для подробной информации о том, что делает и какие параметры допустимы для каждого из этих dh_* сценариев, мы рекомендуем вам прочитать соответствующие страницы Руководства. Мы упомянули не все сценарии из семейста dh_*, их описание вы можете найти в документации к пакету debhelper.

Раздел ‘binary-arch’ — это то место, где вы должны закомментировать все те строки, отвечающие за дополнительные возможности, в которых вы не нуждаетесь. Например, для пакета gentoo были закомментированы строки со словами testversion, emacsen, pam, init, cron, manpages, info, undocumented, suidregister, makeshlibs, и perl. Это было сделано просто потому, что пакет gentoo в этом не нуждается. А в строке 60 было необходимо добавить ‘ FIXED’, так как это имя файла журнала изменений исходной программы.

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

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

Руководство начинающего разработчика Debian версия 1.0.2, 10 June 2001 (?)
Josip Rodin jrodin@jagor.srce.hr
Перевод: Михаил Соболев, mss@transas.com
Перевод: Алексей Выскубов, alexey@pepper.spb.ru

postamble();


Содержание раздела