Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Sozdanie_debian_poketa.docx
Скачиваний:
1
Добавлен:
01.07.2025
Размер:
43 Кб
Скачать
☆

15.1.3. Запуск восстанавливания

Когда все необходимые изменения были применены к источникам, мы можем начать генерировать фактический двоичный пакет (.deb файл). Всем процессом управляет команда dpkg-buildpackage.

Пример 15.1 Восстановлений пакета

$ dpkg-buildpackage -us -uc

[...]

ИНСТРУМЕНТ Fakeroot

В сущности процесс создания пакета - простой вопрос сбора в архивный ряд существующих (или созданных) файлов; большинство файлов закончит тем, что станет принадлежать кореню в архива. Однако создание целого пакета при этом пользователю подразумевало бы повышенные риски; к счастью, этого можно избежать с fakeroot командой.

Этот инструмент может использоваться, чтобы выполнить программу и создать ей впечатление, что она работает как с базой и создает файлы с произвольным владельцем и полномочиями. Когда программ создает архив, который станет пакетом Debian, это обмануто в создание архива, содержащего файлы, отмеченные как принадлежащий произвольным владельцам, в -

корень cluding. Эта установка так удобна, что dpkg-buildpackage использует fakeroot

по умолчанию при создании пакетов.

Обратите внимание на то, что программа только обманывает “веру”, что он действует в качестве привилегированного учетная запись и процесс фактически работают как пользователский, работающий fakeroot программа

(и файлы фактически создаются с полномочиями того пользователя). Никогда не делает это

фактическиц получитель прав пользователя root, которыц мог этим злоупотребить.

Предыдущая команда может перестать работать, если поля Build - Depends не были обновлены, или если связанные пакеты не установлены. В таком случае, можно отменить эту проверку путем команды -d, опция к dpkg-buildpackage. Однако явное игнорирование этих зависимостей влияет на риск процесса сборки, переставая работать на более позднем этапе Хуже того пакет может казаться созданым правильно но не работать должным образом: некоторые программы автоматически отключают некоторые свои опции когда во время изготовления требуемая библиотека не доступна. Как правило разработчики Debian используют программу на более высоком уровне, например, debuild; это позволяет работает DPKG-buildpackage как обычно, но это также добавляет вызов из programthat runsmany проверок для проверки сгенерированных пакетов, это против политики Debian. Этот сценарий также очищает окружающую среду, так что локальные переменные окружения не "загрязняют" пакетом сборки. Debuild команда - один из инструментов в devscripts номере люкс, которые совместно используют некоторую непротиворечивость и configu- порция, чтобы сделать задачу специалистов по обслуживанию проще.

БЕГЛЫЙ ВЗГЛЯД на Pbuilder

Программа pbuilder (в одноименной пакет) позволяет построить в Debian Пакет в изолированной среде. Сначала он создает временный каталог, содержащих ING минимальную систему, необходимую для построения пакета (в том числе пакетов упоминается в области Build-Depends). Этот каталог затем используется в качестве корня Каталог (/), используя команду CHROOT, в процессе сборки. Этот инструмент позволяет процесс сборки производить в среде, которая не изменялась манипуляциями пользователей. Это также позволяет быстро обнаружения недостающие строительныезависимостяи (поскольку строить будет с ошибкой, если соответствующие зависимости не doc-umented). Наконец, он позволяет строить пакет для версии Debian, который не один используется в системе: машина может с помощью Стабильного для его нормальноц рабочей загрузки, и pbuilder на той же машине могут использовать для Нестабильная сборки пакета.

15.2. Создание Вашего Первого Пакета

15.2.1. Метапакеты или поддельные пакеты

Поддельные пакеты и метапакеты подобны, они - пустые оболочки, которые только существуют для эффекта, их метаданные имеются на стеке обработки пакета. Цель поддельного пакета состоит в том, чтобы обмануть dpkg и склонный веру в то, что некоторый пакет находится в остановленном состоянии даже при том, что это - только пустая оболочка. Это позволяет удовлетворять зависимости от пакета когда соответствующий softwarewas, установлен вне объема упаковочной системы. Такой метод работает, но его нужно все еще избегать, когда это возможно, так как нет никакой гарантии что themanually установленное программное обеспечение ведет себя точно так как соответствующий пакет, иначе бы и другие пакеты которые в зависимости от него не работали бы должным образом. С другой стороны, метапакет существует главным образом как набор зависимостей, так, чтобы остановка метапакета фактически введет ряд других пакетов на следующим шагом. И эти виды пакетов могут быть созданы equivs-управлением и equivs-сборкой команд (в equivs пакете). Команда файла equivs-управления создает пакет Debian, заголовочный файл, который должен быть отредактирован, чтобы содержать имя ожидаемого пакета, его цифры версии, частота ошибок по битам, имя специалиста по обслуживанию, его зависимостей и его описания. Другие поля без значений по умолчанию, дополнительные могут быть удалены. Авторское право, Журнал изменений, Readme и Extra –Files поля не стандартные в пакетах Debian; они распознаются в рамках equivs-сборки, и они не будут сохранены в заголовках сгенерированного пакета.

Пример 15.2 Заголовочных файлов libxml-libxml-perl фальшивый пакет

Section: perl

Priority: optional

Standards-Version: 3.9.6

Package: libxml-libxml-perl

Version: 2.0116-1

Maintainer: Raphael Hertzog <hertzog@debian.org>

Depends: libxml2 (>= 2.7.4)

Architecture: all

Description: Fake package - module manually installed in site_perl

This is a fake package to let the packaging system

believe that this Debian package is installed.

.

In fact, the package is not installed since a newer version

of the module has been manually compiled & installed in the

site_perl directory.

Следующим шагом является создание пакета Debian с помощью команды equivs-сборки. Вуаля:

пакет создается в текущем каталоге, и может быть обработан как и любой другой Debian пакет.

15.2.2. Простой файловый архив

Администраторы Falcot Corp. должны создать пакет Debian, чтобы упростить развертывание

ряда документов для большого количества машин. Администратор, отвечающий за эту задачу сначала читает Руководство “Нового Специалиста по обслуживанию”, после начинает работать над их первым пакетом.

https://www.debian.org/doc/manuals/maint-guide/

Первый шаг создает falcot-data-1.0 каталог, чтобы создать целевой исходный пакет.

Пакет будет логически назван falcot-data и у него будет 1.0 номер версии. Администратор тогда помещает файлы документов в подкаталог данных. После вызывает dh_make команду (dh - делают пакет) добавляют файлы, требуемые процессом генерации пакета, которые будут сохранены в debian подкаталоге:

$ cd falcot-data-1.0

$ dh_make --native

Type of package: single binary, indep binary, multiple binary, library, kernel module

, kernel patch?

[s/i/m/l/k/n] i

Maintainer name : Raphael Hertzog

Email-Address : hertzog@debian.org

Date : Fri, 04 Sep 2015 12:09:39 -0400

Package Name : falcot-data

Version : 1.0

License : gpl3

Type of Package : Independent

Hit <enter> to confirm:

Currently there is no top level Makefile. This may require additional tuning.

Done. Please edit the files in the debian/ subdirectory now. You should also

check that the falcot-data Makefiles install into $DESTDIR and not in / .

$

Выбранный тип пакета (indep binary) указывает, что этот исходный пакет генерирует

единственный двоичный пакет, который может быть совместно использован через всю архитектуру (Architecture:all). единственный двоичный файл

действует как дубликат, и приводит к единственному двоичному пакету, который зависит от целевой площади архитектуры (Architecture:any). В этом случае, первый выбор делает ставку отношение, поскольку пакет содержит только документы и никаких двоичных программ, так что он может быть использован аналогично на компьютерах

всех архитектуры.

Многократный двоичный тип соответствует исходному пакету, приводящему к нескольким двоичным пакетам. Частный случай, библиотека, полезен для совместно используемых библиотек, так как они должны следовать за строгой установлеными

правилми. Подобным способом модуль ядра или патч ядра должны быть ограничен пакетами,содержащими модули ядра.

TIP Имя пользователя и адрес электронной почты

Большинство программ, включенных в управление пакетами, будет искать Ваше имя и

адрес электронной почты в DEBFULLNAME и DEBEMAIL или EMAIL переменных окружениях.

Определение их раз и навсегда избавит Вас от ввода их постоянно. Если вам это надоело то этот простой вопрос решается добавлением следующих двух строк в Вашем ~/.bashrc файле (Вы, очевидно, замените значения соответствующими или актуальными!):

export EMAIL=”hertzog@debian.org”

export DEBFULLNAME=”Raphael Hertzog”

Команда dh_make создала debian подкаталог со многими файлами. Некоторым требуются особые правила, контроль, журнал изменений и авторское право. Файлы с .ex расширением являются примером файлов, которые могут использоваться, изменятся (и удаляя расширение) надлежащих случаях. Когда они ненужны, удалять их рекомендуется. compat файл должен быть сохранен, он требуется для правильного функционирования debhelper номера люкс программ (начальный префикс dh_) используемый на различных стадиях процесса сборки пакета.

Файл авторского права должен содержать информацию об авторах документов, включенных в

пакет и связанная лицензия. В нашем случае это внутренние документы, и их использование ограничено

к в компании Falcot Corp. По умолчанию файл изменений, как правило, целесообразно; замены на "Исходную версию" с более подробными объяснениями и изменениями. Управляющий файл был также обновлен: поле Раздел был изменен на разное и главная страница, Vcs-Git и Vcs-браузеров поля были удалены.

Зависимые поля были завершены с Iceweasel | WWW-браузером, таким образом, чтобы обеспечить доступ веб-браузер способен отображать документы в пакете.

Пример 15.3 Файл контроля

Source: falcot-data

Section: misc

Priority: optional

Maintainer: Raphael Hertzog <hertzog@debian.org>

Build-Depends: debhelper (>= 9)

Standards-Version: 3.9.5

Package: falcot-data

Architecture: all

Depends: iceweasel | www-browser, ${misc:Depends}

Description: Internal Falcot Corp Documentation

This package provides several documents describing the internal

structure at Falcot Corp. This includes:

- organization diagram

- contacts for each department.

.

These documents MUST NOT leave the company.

Their use is INTERNAL ONLY.

Пример 15.4 Файл журнала изменений

falcot-data (1.0) internal; urgency=low

* Initial Release.

* Let’s start with few documents:

- internal company structure;

- contacts for each department.

-- Raphael Hertzog <hertzog@debian.org> Fri, 04 Sep 2015 12:09:39 -0400

Пример 15.5 Файл авторского права

Format: http://www.debian.org/doc/packaging-manuals/copyright-format/1.0/

Upstream-Name: falcot-data

Files: *

Copyright: 2004-2015 Falcot Corp

License:

All rights reserved.

Возврат к основам. Файл сборки

Файл сборки, скрипт, используемый программой описывает правила как построить набор файлов друг от друга в дереве зависимостей (например, программы могут быть построены из множества исходных файлов). Файл сборки, файл описывает эти правила в следующий формат:

target: source1 source2 ...

command1

command2

Интерпретация такого правила является следующим: если один из источников файлов более новый чем исходный(целевой) файл, то цель должна быть сгенерированы, используя команду 1 и команду 2.

Обратите внимание, что командные строки должны начинаться с символа табуляции; Также обратите внимание, что командная строка(-и) начинается с тире символа (-), отказ команды не прервет весь процесс.

Файл правил обычно содержит ряд правил, используемых, чтобы формировать, построить и установить программное обеспечение в специальном подкаталоге (названный в честь произведенного двойного пакета). Содержание этого подкаталога тогда заархивировано в пакете Debian, как будто это был корень файловой системы. В нашем случае файлы будут установлены в debian/falcot-data/usr/share/falcot-data/subdirectory, так, чтобы установка произведенного пакета разархивировала файлы под/usr/share/falcot-data/. Файл правил используется поскольку файл сборки применяется с несколькими стандартными целями (включение чистого и двойного, используемый соответственно, чтобы убрать исходный справочник и произвести двойной пакет).

Хотя этот файл - сердце процесса, он содержит только абсолютный минимум для управления стандартным набором команд обеспечивая debhelper инструментом. Так обстоят дела для файлов произведенных dh_make. Чтобы установить наши файлы, мы просто формируем поведение dh_install команды, создавая следующий debian/falcot-data.install файл:

data/* usr/share/falcot-data/

В этот момент, пакет может быть создан. Однако мы можем добавить палитру краски. Начиная с администраторов чтобы документы были легко доступны из меню графической настольной окружающей среды, мы добавляем falcot-data.desktop файл и установиливаем его в/usr/share/applications добавляя вторую линию к debian/falcot-data.install.