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

         

Где искать помощь


Прежде всего (перед тем, как задавать свой вопрос в одном из форумов!), пожалуйста, прочитайте документацию (RTFM!). Это включает документацию в каталогах /usr/share/doc/dpkg, /usr/share/doc/debian, /usr/share/doc/package/*, а также страницы Руководства и или info-страницы для всех упомянутых в этой статье программ. Если вы получили сообщение об ошибке (да, да, настоящее сообщение об ошибке!), это означает, что настало время посетить и ознакомиться с необходимой документацией. Это позволит вам эффективно работать с сообщениями об ошибках.

Подписавшись на список рассылки Debian Mentors, вы можете попросить помощи у опытных разработчиков Debian. Для того, чтобы подписаться на этот список рассылки, пошлите письмо по адресу debian-mentors-request@lists.debian.org, указав слово ‘subscribe’ в поле темы письма.

Если у вас остались вопросы, задайте их в список рассылки разработчиков Debian по адресу debian-devel@lists.debian.org. Вы можете подписаться на него, послав письмо по адресу debian-devel-request@lists.debian.org, в теме которого будет слово 'subscribe'. Если вы уже стали разработчиком Debian, вам следует подписаться на него в любом случае.

Даже если все правильно работало, настало время молиться. Почему? Потому что через несколько часов или дней пользователи по всему миру начнут использовать ваш пакет, и, если вы допустили какую-нибудь критическую ошибку, многочисленные расстроенные пользователи Debian начнут наполнять ваш почтовый ящик злобными письмами… Шутка, шутка. :-)

Расслабьтесь и приготовьтесь к получению сообщений об ошибках, так как много чего еще нужно сделать для того, чтобы пакет полностью соответствовал политике Debian (еще раз, прочитайте полную документацию). Успехов!

[ назад ] [ Содержание ] [ 1 ] [ ] [ 3 ] [

] [ 5 ] [ 6 ] [ вперед ]

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

postamble();



Обновление пакета


Предположим, что в вашем пакете нашли ошибку, которую была зарегестрирована в системе отслеживания ошибок под номером #54321. Предположим также, что вы можете исправить эту ошибку. Для того, чтобы создать обновленный пакет Debian, вам необходимо сделать следующее:

Разумеется, исправить ошибку.

Добавить новую редакцию в файл changelog при помощи команды ‘dch -i’ и поместить в него краткое описание ошибки и то, как вы ее исправили. Обязательно в конце описания добавьте Closes: #54321. Этот позволит системе поддержки архива Debian автоматически послать сообщение о том, что данная ошибка была исправлена новой редакцией вашего пакета.

Повторить действия описанные в разделах Построение пакета, раздел 6.1, Поиск ошибок в пакете, раздел 6.2, и Загрузка пакета, раздел 6.3. Отличие состоит в том, что в этот раз вы не должны включать архив, содержащий оригинальные исходные тексты, так как он уже присутствует в архиве Debian.

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

Загрузить исходные тексты программы и поместить этот архив (например, gentoo-0.9.13.tar.gz) в каталог, что мы создавали в самом начале (например, ~/debian).

Перейти в рабочий каталог (gentoo-0.9.12) и выполнить команду uupdate -u gentoo-0.9.13.tar.gz

Вы должны заменить это имя именем файла, содержащего новую версию исходных тесктов программы. Программа uupdate(1) переименует его, попытается применить все изменения, что находятся в файле .diff.gz и обновит файл debian/changelog.

Перейти в каталог с исходными текстами новой версии программы (../genetool-0.9.13) и повторить действия, описанный в разделах Построение пакета, раздел 6.1, Поиск ошибок в пакете, раздел 6.2, и Загрузка пакета, раздел 6.3.

Заметьте, что если создали файл debian/watch (это описано в разделе Файл watch.ex, раздел 5.6), вы можете запустить программу uscan(1), которая попытается найти новую версию программы, загрузить необходимый архив и запустит программу uupdate.



Поиск ошибок в пакете




Запустите программу lintian(1) на файл .changes; эта программа проверит пакет на наличие стандартных ошибок. Команда выглядит так: lintian -i gentoo_0.9.12-1_i386.changes

Разумеется, вы должны указать имя файла .changes, созданного для вашего пакета. Если окажется, что какие-то ошибки присутствуют (это все строки, начинающиеся с E:), внимательно прочитайте объяснение (строки, начинающиеся с N:), исправьте ошибки и попробуйте снова построить пакет, что описано в разделе Построение пакета, раздел 6.1. Если вы увидели только строки, начинающиеся с W: (предупреждения), то вы можете быть уверены, что ваш пакет, скорее всего, правилен (но, разумеется, требует дополнительной работы).

Заметьте, что программа debuild(1) поможет вам построить пакет при помощи программы dpkg-buildpackage и сразу проверить полученный пакет при помощи программы lintian.

Проверьте содержимое пакета при помощи мэнеджера файлов (например, mc(1)) или распакуйте его во временный каталог при помощи программы dpkg-deb(1). Убедитесь, что какие бы то ни было лишние файлы отсутсвуют как в двоичном пакете, так и в пакете с исходными текстами. Подсказка: команда zgrep ^+++ ../gentoo_0.9.12-1.diff.gz

позволит вам получить список измененных исходных файлов, а команда dpkg-deb -c gentoo_0.9.12-1_i386.deb

выведет список файлов в двоичном пакете.

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

Позже, когда вы будет создавать новую версию пакета, для того, чтобы убедиться, что обновление будет происходить без ошибок, вы должны проверить следующее:

попробуйте обновить предыдущую версию пакета (а также версию, включенную в последний выпуск Debian);

попробуйте установить предыдущую версию пакета,

установите пакет как новый (в систему, в которой отсутвуют предыдущие версии пакета);

удалите его, установите заново, и, наконец, вычистите его.



Построение пакета


Перейдите в основной каталог программы и выполните команду: dpkg-buildpackage -rfakeroot

Эта команды сделает все, что необходимо. Все, что вам необходимо будет сделать, это ввести фразу-пароль для вашего секретного PGP-ключа. Дважды! После того, как команда завершит свою работу, в каталоге, который вы создали в самом начале (~/debian/) следующие файлы:

gentoo_0.9.12-1_i386.deb это результат вашей работы — двоичный пакет. Вы можете воспользоваться программой dpkg или dselect для того, чтобы установить его (а затем и удалить) как любой другой каталог.

gentoo_0.9.12.orig.tar.gz Этот файл содержит оригинальные исходные тексты программы. Они необходимы для того, чтобы если кто-нибудь захочет перекомпилировать ваш пакет, мог это сделать. Или же, если он не используют систему управления пакетами Debian, но хочет загрузить исходные тексты программы и скомпилировать ее.

gentoo_0.9.12-1.dsc Этот файл содержит краткое описание исходных файлов для пакета. Этот файл создается с использованием информации из файла gentoo-0.9.12/debian/control и необходим для распаковки исходных текстов командой dpkg-source(1). Содержимое этого файла имеет вашу цифровую подпись, что позволяет другим людям удостовериться, что именно вы создали его.

gentoo_0.9.12-1.diff.gz Этот файл содержит (в формате ‘unified diff’) все изменения, которые вам понадобилось сделать с исходными текстами. Он был создал и используется программой dpkg-source(1).

gentoo_0.9.12-1_i386.changes Этот файл описывает изменения, сделанные в данной версии пакета по сравнению с предыдущей версией. Он используется программами поддержки ftp-архива Debian для помещения пакетов (как двоичных так и содержащих исходные тексты) в архив. Он содержит как информацию из файла gentoo-0.9.12/debian/changelog так и из файла .dsc.

По мере того, как вы будете работать над вашим пакетом, вы можете добавлять новую функциональность или просто поменять его поведение. Люди, загружающие ваш пакет могут сразу увидеть в этом файле, что именно изменилось. Длинные строки цифр — это md5-суммы всех перечисленных файлов. Человек, которые загрузил ваши файлы, может проверить их при помощи программы md5sum(1) и, если значения контрольных сумм не совпадает, он точно будет знать, что это не те файлы, что создали вы (могла произойти ошибка при загрузке либо же кто-то “поправил” их). Этот файл также имеет цифровую подпись содержимого с тем, чтобы люди имели большую уверенность, что он был создан вами.

В случае, если процесс построения пакета длится значительное время, вы скорее всего захотите избежать пересборки с нуля каждый раз, пока вы отлаживаете содержимое файла debian/rules. В этом случае для построения .deb-файла мы рекомендуем вам использовать команду: fakeroot debian/rules binary

Убедитесь только, что цель ‘install’ не зависит от цели ‘install-stamp’; в этом случае каждый раз будет выполнена команда ‘dh_clean -k’. После завершения отладки процедуры построения пакета, не забудьте построить пакет с нуля.



Загрузка пакета


Теперь, когда вы тщательно оттестировали свой пакет, настало время загрузить все необходимые файлы на сервер master.debian.org. Для этого вы должны воспользоваться программой dupload(1). Сначала вы должны создать конфигурационный файл ~/.dupload.conf. Поместите в него что-нибудь похожее на: package config;

$default_host = "ftp-master";

$cfg{"ftp-master"}{"login"} = "yourdebianusername";

$cfg{"non-us"}{"login"} = "yourdebianusername";

1;

Разумеется, измените информацию обо мне на вашу, для этого прочитайте страницу Руководства dupload.conf(5), что позволит вам понять, что означает каждый параметр.

Теперь подсоединитесь к вашему Интернет-провайдеру и выполните команду: dupload --to master gentoo_0.9.12-1_i386.changes

Программа dupload проверяет, что md5-суммы ваших файлов совпадают с тем, что указано в файле .changes. Если будет обнаружено несовпадение, она вам предложит создать этот файл заново (о том, как правильно это сделать, смотрите раздел Построение пакета, раздел 6.1).

Программа dupload попросит ввести ваш пароль на машине master.debian.org, загрузит пакеты и пошлет, если необходимо, информацию о загруженных файлах в список рассылки debian-devel-changes@lists.debian.org.

Если вы живете в Европе, вы можете воспользоваться другой машиной для загрузки ваших пакетов. Для дополнительной информации смотрите dupload(1), dupload.conf(5) и «Руководство разработчика».