Содержание
Данный раздел содержит краткий обзор доступных сопровождающим инструментов. Приведённая ниже информация ни в коем мере не является полной или окончательной, она представляет собой лишь руководство по некоторым более популярным утилитам.
Инструменты сопровождающего Debian предназначены для облегчения работы разработчиком и освобождения их времени для решения критических задач. Как говорит Ларри Уолл, существует более одного способа сделать это.
Некоторые предпочитают использовать высокоуровневые инструменты для сопровождения пакетов, некоторые же нет. Официально Debian это без разницы; подходит любой инструмент, которые делает свою работу. Следовательно, данный раздел не предполагается для того, чтобы навязать всякому то, какие инструменты следует использовать или как следует выполнять свои обязанности по сопровождению пакетов. Также не предполагается рекомендовать какой-либо конкретный инструмент вплоть до исключения конкурирующего инструмента.
Большинство описаний этих пакетов берётся из самих фактических описаний
пакетов. Дополнительная информация может быть найдена в самой документации
по пакету. Также вы можете получить дополнительную информацию при помощи
команды apt-cache show
имя-пакета
.
Следующие инструменты весьма нужны любому сопровождающими.
dpkg-dev
содержит инструменты
(включая dpkg-source), необходимые для распаковки, сборки
и загрузки пакетов Debian с исходным кодом. Эти утилиты предоставляют
базовую, низкоуровневую функциональность, необходимую для создания пакетов и
для манипуляции ими; как таковые, эти утилиты являются необходимыми любому
сопровождающему Debian.
debconf
предоставляет единообразный
интерфейс для интерактивной настройки пакетов. Его пользовательских
интерфейс независим, что позволяет конечным пользователям настраивать пакеты
при помощи текстового интерфейса, интерфейса HTML, либо диалогового
интерфейса. Новые варианты интерфейса могут быть добавлены в виде модулей.
Документацию для этого пакета вы можете найти в пакете debconf-doc
.
Многие считают, что эта система должна использоваться для всех пакетов,
которым требуется интерактивная настройка; см. раздел 6.5, «Управление настройкой с помощью debconf
».
В настоящее время Политика Debian не требует использовать debconf
, но это может быть изменено в будущем.
fakeroot
имитирует привилегии
суперпользователя. Это позволяет вам собирать пакеты без привилегий
суперпользователя (обычно пакеты хотят установить файлы, владельцем которых
является суперпользователь). Если у вас установлен fakeroot
, dpkg-buildpackage
будет автоматически использовать его.
Согласно свободному онлайн словарю вычислительной техники (FOLDOC), `lint' является обработчиком языка Unix C, который выполняет больше проверок кода, чем обычные компиляторы C. Инструменты для проверки пакетов помогают сопровождающим, автоматически находя распространённые ошибки и нарушения Политики в пакетах.
lintian
анализирует пакеты Debian и
выдаёт информацию об ошибках и нарушениях Политики. Он содержит
автоматические проверки множества аспектов Политики Debian, а также
некоторые проверки на наличие распространённых ошибок.
Периодически вам следует получить наиболее свежую версию lintian
из нестабильного
выпуска и проверять все ваши пакеты. Заметьте, что опция
-i
предоставляет подробное объяснение того, что означает
каждая ошибка или предупреждение, на каком пункте Политики они основываются,
а иногда и то, как вы можете исправить проблему.
Для получения дополнительной информации о том, как и когда использовать Lintian, обратитесь к разделу 5.3, «Тестирование пакета».
Также вы можете посмотреть обзор всех проблем, о которых было сообщено
Lintian для ваших пакетов, по адресу https://lintian.debian.org/.
Эти отчёты содержат наиболее свежий вывод lintian для
всего разрабатываемого выпуска (нестабильного
выпуска).
debdiff (из пакета devscripts
, раздел A.6.1, «devscripts
») сравнивает списки файлов
и управляющие файлы двух пакетов. Это простая проверка на наличие
регрессий, поскольку она позволяет вам заметить, что число двоичных пакетов
изменилось с момента последней загрузки, либо если что-то было изменено в
управляющем файле. Конечно, некоторые изменения, о которых сообщает эта
утилита, не являются чем-то плохим, но она может помочь вам предотвратить
различные случайные проблемы.
Вы можете запустить её, указав два двоичных пакета:
debdiff package_1-1_arch.deb package_2-1_arch.deb
Или даже два файла changes:
debdiff package_1-1_arch.changes package_2-1_arch.changes
Дополнительную информацию см. в debdiff(1).
Инструменты сборки пакетов делают написание файла
debian/rules
значительно проще. Дополнительную
информацию о том, почему желательно или не желательно использовать их, см. в
разделе 6.1.1, «Сценарии-помощники».
debhelper
представляет собой набор
программ, которые могут использовать в debian/rules
для
автоматизации распространённых задач, связанных со сборкой двоичных пакетов
Debian. debhelper
включает в себя
программы для установки различных файлов в ваши пакеты, сжатия файлов,
исправления прав доступа к файлам, а также интеграции вашего пакета в
систему меню Debian.
В отличии от других подходов, debhelper
разбит на несколько небольших и
простых команд, которые работают заодно. Как таковой, этот подход позволяет
осуществлять более тщательное управление, чем то предоставляет другими
инструментами для debian/rules.
Имеется ряд небольших дополнительных пакетов debhelper
, которые слишком мелки, чтобы
описывать их здесь. Вы можете посмотреть список этих программ, выполнив
apt-cache search ^dh-
.
Пакет dh-make
содержит
dh_make, программу, которая создаёт основу файлов,
которые необходимы для сборки пакета Debian из дерева исходного кода. Как
то предполагается в названии этой программы, dh_make
является новой версией debmake
, её
файлы-шаблоны используют программы dh_* из debhelper
.
Хотя файлы rules, порождаемые dh_make, вообще-то являются достаточной основой для создания рабочего пакета, они всё равно представляют собой лишь основу: на сопровождающем всё ещё лежит груз задачи по тонкой настройке порождённых файлов и сборке пакета, целиком соответствующего Политике и работающего.
equivs
представляет собой ещё один
пакет для создания пакетов. Часто он предлагается для локального
использования, если вам нужно сделать пакет просто для удовлетворения
зависимостей. Также он иногда используется при создании „метапакетов“, это
пакеты, чья цель состоит лишь в том, чтобы зависеть от других пакетов.
Следующие пакеты помогают в процессе сборки пакета, по сути управляя dpkg-buildpackage, а также решая поддерживающие задачи.
git-buildpackage
предоставляет
возможность введения или импорта пакетов Debian с исходным кодом в
репозиторий Git, сборки пакета Debian из репозитория Git, а также помогает в
интеграции изменений из основной ветки разработки в этот репозиторий.
Эти утилиты предоставляют инфраструктуру для облегчения использования Git
сопровождающими Debian. Это позволяет хранить отдельные ветки Git пакета
для стабильного
, нестабильного
и
возможно экспериментального
выпусков, а также иметь все
другие преимущества системы контроля версий.
Пакет debootstrap
и соответствующий
сценарий позволяют вам произвести начальную установку базовой системы Debian
в любую часть файловой системы. Под базовой системой мы подразумеваем
минимальное число пакетов, необходимых для работы и установки остальной
системы.
Иметь подобную систему весьма полезно. Например, вы можете сделать chroot в эту систему и проверить ваши сборочные зависимости. Либо вы можете проверить то, как ведут себя ваши пакеты при установке на базовую систему. Сборщики chroot используют этот пакет; см. об этом ниже.
pbuilder
создаёт систему в chroot и
собирает пакет внутри chroot. Это полезно для проверки того, то сборочные
зависимости пакета указаны верно, а также для того, чтобы убедиться, что
ненужных и неправильных сборочных зависимостей в получившемся пакете нет.
Связанный пакет, cowbuilder
,
ускоряет процесс сборки с помощью файловой системы COW на любой стандартной
файловой системе Linux.
sbuild
представляет собой другой
автоматизированный сборщик. Он также может использовать окружения chroot.
Он может использоваться как отдельно, так и как часть сетевого,
распределённого окружения. В последнем случае он является частью системы,
используемой теми, кто занимается переносом, для сборки двоичных пакетов для
всех доступных архитектур. Дополнительную информацию см. в разделе 5.10.3.3, «wanna-build
»,
систему в действии можно посмотреть по адресу https://buildd.debian.org/.
Следующие пакеты помогут автоматизировать или упростить процесс загрузки пакетов в официальный архив.
dupload
представляет собой пакет и
сценарий для автоматической загрузки пакетов Debian в архив Debian, для
записи журнала загрузки, а также отправки сообщений электронной почты о
загрузке пакета. Вы можете настроить его на использование новых мест или
методов загрузки.
Пакет и сценарий dput
выполняет по
большей части то же, что и dupload
,
но по-другому. Он имеет некоторые дополнительные возможности по сравнению с
dupload
, такие как способность
проверять подпись GnuPG и контрольные суммы до загрузки, а также возможность
запуска dinstall в холостом режиме после загрузки.
Сценарий dcut (часть пакета dput
, раздел A.5.2, «dput
») помогает удалять файлы из
каталога загрузки на ftp.
Следующие инструменты помогают автоматизировать различные задачи по
сопровождению пакетов от добавления записей в журнал изменений или строк
подписи и поиска ошибок в Emacs до использования наиболее свежего и
исключительно официального файла config.sub
.
devscripts
представляет собой пакет,
содержащий обёртки и инструменты, которые весьма полезны для сопровождения
ваших пакетов Debian. К примеру, в нём имеются сценарии
debchange и dch, которые управляют
вашим файлом debian/changelog
из командной строки,
debuild, который представляет собой обёртку вокруг
dpkg-buildpackage. Утилита bts также
очень полезна для обновления статуса сообщений об ошибках из командной
строки. uscan может использоваться для отслеживания
новых версий основной ветки разработки для ваших пакетов.
debrsign может использоваться для выполнения удалённого
подписывания вашего пакета до его загрузки, что очень удобно если машина, на
которой вы собрали ваш пакет, отличается от той, где находятся ваши ключи
GPG.
Полный список доступных сценариев см. в руководстве devscripts(1).
autotools-dev
включает в себя лучшие
практики для тех, кто сопровождает пакеты, использующие
autoconf и/или automake. Также в этом
пакете содержаться канонические файлы config.sub
и
config.guess
, которые, как это известно, работают на
всех переносах Debian.
dpkg-repack создаёт пакет Debian из пакета, который уже
был установлен. Если в пакете были произведены какие-либо изменения в то
время когда он был распакован (напр., были изменены файлы в
/etc
), новый пакет наследует все изменения.
Эта утилита позволяет легко копировать пакеты с одного компьютера на другой, либо заново создавать пакеты, которые были установлены в вашей системе, но более нигде не доступны, либо для сохранения текущего состояния пакета до того, как вы его обновите.
alien преобразует пакеты между различными форматами пакетов, включая пакеты Debian, RPM (RedHat), LSB (Linux Standard Base), Solaris, и Slackware.
dpkg-dev-el
является пакетом Emacs
lisp, который предоставляет помощь в редактировании некоторых файлов в
каталоге debian
вашего пакета. Например, в этом пакете
имеются полезные функции для вывода списка текущих ошибок пакета, а также
для завершения последней записи в файле
debian/changelog
.
dpkg-depcheck (из пакета devscripts
, раздел A.6.1, «devscripts
») запускает команду в
окружении strace для определения всех пакетов, которые
используются вызванной командой.
Для пакетов Debian это весьма полезно, если вам необходимо сформировать
строку Build-Depends
для вашего нового пакета: запуск
процесса сборки через dpkg-depcheck предоставит вам
приблизительный список сборочных зависимостей. Например:
dpkg-depcheck -b debian/rules build
dpkg-depcheck также может использоваться для проверки зависимостей времени исполнения, особенно в том случае, если ваш пакет использует exec(2) для запуска других программ.
Дополнительную информацию см. в dpkg-depcheck(1).
Следующие инструменты полезны для занимающихся переносом и кросс-компиляцией.
Следующие пакеты предоставляют информацию для сопровождающих, либо помогают им в сборке документации.
docbook-xml
предоставляет DocBook
XML DTD, который обычно используется для подготовки документации по Debian
(как более старая документация debiandoc SGML DTD). Например, данное
руководство написано в DocBook XML.
Пакет docbook-xsl
предоставляет
файлы XSL для сборки и форматирования стиля исходных файлов в различные
форматы вывода. Для того, чтобы использовать стили XSL, вам потребуется
процессор XSLT, такой как xsltproc
.
Документация для стилей может быть найдена в пакетах docbook-xsl-doc-*
.
Чтобы создать PDF из FO, вам потребуется процессор FO, такой как xmlroff
или fop
. Другим инструментом для создания PDF из
DocBook XML является dblatex
.
debiandoc-sgml
предоставляет
DebianDoc SGML DTD, который широко используется для подготовки документации
по Debian, но в настоящее время устарел (следует использовать пакет
docbook-xml
). Кроме того, он
предоставляет сценарии для сборки и изменения стиля оформления исходного
файла в других форматах вывода.
Документация для DTD может быть найдена в пакете debiandoc-sgml-doc
.
Содержит открытые ключи GPG разработчиков и сопровождающих Debian. Дополнительную информацию см. в разделе 3.2.2, «Сопровождение вашего открытого ключа» и документации по пакету.