Создание Debian пакета 15
Содержание:
Восстановление пакета из его источников
Создание (твоего) первого пакета
Создание хранилища пакетов для ART
Создание обслуживающего пакета
Эта тема довольно распространена среди администраторов, которые постоянно работают с Debian пакетами, чтобы в случае потребности создать их собственные пакеты или изменить существующий пакет. Эта глава стремится ответить на наиболее распространенные вопросы в этой области и обеспечить необходимыми основами, чтобы использовать инфраструктуру debian наилучшим способом. После удачной попытки создания локального пакеты, вы можете почувствовать потребность двигаться дальше, чем это и присоединиться к самому debian проекту!
Восстановление пакета из его источников
Восстановление двоичного пакета требуется в нескольких случаях. В некоторых случаях,
администратору нужна характеристика программного обеспечения, которая требует, чтобы программное обеспечение было скомпилировано из источников, с определенной опцией компиляции; в другие, программное обеспечение, которые упакованы в установленной версии Debian не достаточно новые. В последнем случае администратор будет создавать более
новый пакет, взятый от более новой версии Debian — такого как Тестирование или даже Нестабильность — так то, что этот новый пакет работает в их Стабильном распределении; эту работу вызывают, “backporting”.
Как обычно, проверку нужно выполнить, прежде, чем выполнить такую задачу, проверить, было ли это сделанный уже — беглый взгляд на Средстве отслеживания Пакета Debian для того пакета покажет эту информацию.
https://tracker.debian.org/
15.1.1. Получение источников
Восстановление пакета Debian запускается с помощью получения его исходного кода. Самый простой путь состоит в том, чтобы использовать исходную команду исходного имени пакета. Эта команда требует deb-src строки в /etc/apt/sources.list файл и актуальные индексные файлы (т.е. получают обновление). Отметьте, однако, то, что Вы будете загружать исходные пакеты с версии Debian, упомянутой в строках deb-src. Если Вам нужна другая версия, Вы, возможно, должны загрузить ее вручную с Debian зеркал или от веб-сайта. Это включает выборку двух или трех файлов (с расширениями *.dsc — для Управления исходного кода Debian — *.tar.comp, и иногда *.diff.gz или *.debian.tar.comp — аккомпанемент, принимающий одно значение среди gz, bz2 или xz в зависимости от инструмента сжатия в использовании), затем выполненный
dpkg-источник-x file.dsc команда. Если *.dsc файл непосредственно доступен в данном URL,
есть еще более простой способ выбрать все это с dget командой URL. Эта команда (которая
может быть найдена в devscripts пакете), выбирает *.dsc файл в данном адресе, затем анализирует его содержание, и автоматически выбирает файл или файлы, на которые ссылаются. Как только имеются все необходимые файлы, это извлекает исходный пакет (-d - опция только для загрузки пользователем).
15.1.2. Внесение изменений
Источник пакета теперь доступен в каталоге, названном в честь исходного пакета и
его версия (например, samba-4.1.17+dfsg); это - то, где мы будем работать над нашими локальными изменениями. Первое, что нужно сделать состоит в том, чтобы изменить номер версии пакета, так, чтобы восстановленные пакеты могли быть различены, fromthe исходные пакеты, обеспеченные Debian. Принятие текущей версии равняется 2: 4.1.17+dfsg-2, мы можем создать версию 2:4.1.17+dfsg-2falcot1, которая четко указывает источник пакета. Это делает номер версии пакета выше, чем тот который есть у Debian, так, чтобы пакет легко устанавливается как обновление на исходном пакете. Такое изменение лучше всего вызвано с dch командой (Журнал изменений Debian) от devscripts пакета с командой, такой как dch - локальный falcot. Это вызывает текстовый редактор (разумный редактор — это должен быть Ваш любимый редактор, если это ismentioned в ВИЗУАЛЬНЫХ переменных окружения или переменных окружения РЕДАКТОРА,
и редактор по умолчанию иначе), чтобы позволить документировать различия, принесенные этим, восстанавливают. Этот редактор показывает нам, что dch действительно изменял debian/changelog файл.
Когда изменение в опциях сборки требуется, изменения должны быть внесены в debian/rules,
который управляет шагами в процессе сборки пакета. В самых простых случаях, строках относительно начальной конфигурации (./configure …) или фактическая сборка ($(MAKE) … or make …), легко разлечить. Если эти команды не вызываются, они - вероятно, побочный эффект другогой
команды, тогда см. их документация, чтобы узнать больше, как изменить поведение по умолчанию. С пакетами, использующими dh, Вы, возможно, должны были бы добавить переопределение для dh_auto_configure или dh_auto_build команды (см. их соответствующие страницы руководства для объяснения о том, как достигнуть этого).
В зависимости от локальных изменений в пакетах, updatemay также требуются в debian/
файл управления, которые содержат описание сгенерированных пакетов. В частности этот довод "против" файла - con-tains Build-Depends, строки, управляющие списком зависимостей, которые должны быть выполнены в пакете во время создания. Они часто отсылают к версиям пакетов, содержавшихся в в раличных источниках из которых прибывают пакеты, но некоторые могут быть недоступным в распределении, используемом для восстанавливания. Нет никакого автоматизированного способа определить, реальная ли зависимость или только указанная, чтобы гарантировать в этом нужно убедится , а именно, что она будет с последней версией библиотеки. Это - единственный доступный способ вынудить разработчика использовать данную версию пакета во время сборки, которую создали Специалисты по обслуживанию Debian часто используют строго имеющие версию в зависимости от сборки.
Если Вы знаете наверняка, что эти зависимости сборки слишком строги, Вы должны не стесняться ослабляться их локально. Чтение файлов, которые документируют стандартный способ создать программное обеспечение — эти файлы часто вызывают, УСТАНОВКА — поможет Вам выяснять надлежащие зависимости. Идеально, все зависимости должны быть выполнимыми от распределения, используемого для восстанавливания; если они не, рекурсивный процесс запускается, посредством чего пакеты упоминали в поле Build – Depends должен быть бэкпортирован, прежде чем целевой пакет может быть. Некоторым packagesmay не нужно бэкпортирование, и может быть установлен как есть во время процесса сборки (известный пример - debhelper). Обратите внимание на то, что бэкпортирование процесса может быстро стать сложным, если Вы не осторожны. Поэтому, бэкпорты должен быть сведен к строгому минимуму, если это возможно. Установка сборки – зависит apt-get позволяет устанавливать все пакеты, упомянутые в полях Build - Depends a исходный пакет, доступный в distributionmentioned в deb-src строке/etc/файл apt/sources.list. Это простой вопрос запустив кв-получить Build-DEP команда источника пакета.
