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

Пример 15.6 Falcot-data.Desktop файл

[Desktop Entry]

Name=Internal Falcot Corp Documentation

Comment=Starts a browser to read the documentation

Exec=x-www-browser /usr/share/falcot-data/index.html

Terminal=false

Type=Application

Categories=Documentation;

Обновленный debian/falcot-data.install похож на это:

data/* usr/share/falcot-data/

falcot-data.desktop usr/share/applications/

Наш источник пакет готов. Все, что осталось сделать, это сгенерировать двойной пакет, тем же методом который мы использовали ранее для восстановления пакетов: мы запускаем DPKG-buildpackage -us -uc команда из каталога falcot-данных 1.0.

15.3. Создание пакета для apt Repository

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

Для упрощения процесса развертывания, они хотят интегрировать эти пакеты в архив пакеты, которые могут быть непосредственно использованы АПП. По понятным причинам технического обслуживания, они хотят, отделить внутренние пакеты от локально восстановленных пакетов. Целью является запись соответствия в a /etc/apt/sources.list.d/falcot.list файл, который будет следующим:

deb http://packages.falcot.com/ updates/

deb http://packages.falcot.com/ internal/

Администраторы поэтому настраивают конфигурацию виртуальнних узлов на свой внутренний сервере HTTP с/srv/

vhosts/packages/в качестве корня соответствующего веб-пространства. Управление архивом самостоятельно делегировано к mini-dinstall команде (а так же названном пакете). Этот инструмент следит за поступлением / каталогом (в нашем случае,/srv/vhosts/packages/mini-dinstall/

incoming/), и ожидает новых пакетов там; когда пакет загружен, он установлен

в архиве Debian в /srv/vhosts/packages/.

Mini-dinstall команда читает файл *.changes созданый, когда пакет Debian генерируется. Эти файлы содержат список всех другие файлы связаных с версией пакета (*.deb, *.dsc, *.diff.gz / *.debian.tar.gz, *.orig.tar.gz, или их эквивалентами с другими инструментами сжатия), и это позволяет

mini-dinstall знать какой файлы установить файлы также содержат имя tar-get распределения (часто нестабильного), указанного в последней записи debian/changelog записи, и mini-dinstall использует эту информацию, чтобы решить, где пакет должен быть установлен. Вот почему администраторы должны всегда изменять это поле прежде, чем создать пакет и устанавливать его в обновления, от целевого местоположения.

Mini-dinstall тогда генерирует файлы, требуемые

APT, такой как Packages.gz.

АЛЬТЕРНАТИВА APT-ftparchive

Если mini-dinstall кажется слишком сложным для Ваших потребностей архива Debian, Вы можете также использовать apt-ftparchive команду. Этот инструмент сканирует содержание каталога

и дисплеи (на его стандартном выводе) в поиске соответствующий файл Пакетов. В Falcot

Corp. администраторы могут загрузить пакеты непосредственно в/srv/vhosts/packages/updates/или/srv/vhosts/packages/internal/, затем запустить follow-ing для создания Packages.gz:

$ cd /srv/vhosts/packages

$ apt-ftparchive packages updates >updates/Packages

$ gzip updates/Packages

$ apt-ftparchive packages internal >internal/Packages

$ gzip internal/Packages

Команда apt-ftparchive позволяет создавать файлы Sources.gz таким же способом.

Настройка mini-dinstall требует установки(создания) файла ~/.mini-dinstall.conf; в случае Falcot Corp., содержание следующие:

[DEFAULT]

archive_style = flat

archivedir = /srv/vhosts/packages

verify_sigs = 0

mail_to = admin@falcot.com

generate_release = 1

release_origin = Falcot Corp

release_codename = stable

[updates]

release_label = Recompiled Debian Packages

[internal]

release_label = Internal Packages

Одно решение, которое стоит отметить, является генерацией файлов Release для каждого архива. Это может помочь в управлении приоритетами установочных пакетов, используя/etc/apt/preferences конфигурационный файл (см.разделите 6.2.5, страница 112 “Managing Package Priorities”).

БЕЗОПАСНОСТЬ mini-dinstall и разрешения.

Так как mini-dinstall был разработан, чтобы работать для обычного пользователя, нет никакой потребности запускать его как корень. Самый простой путь состоит в том, чтобы сконфигурировать все в учетной записи пользователя принадлежащей администратору, отвечающему за создание пакетов Debian. С этого момента только у этого администратора есть требуемые полномочия поместить файлы в incoming/ каталог, мы можем вывести, что администратор аутентифицировал источник каждого пакет до развертывания и mini-dinstall не должен делать этого снова. Это

объясняет verify_sigs =0 параметр (что означает, что подписи не нужно проверять). Однако, если содержание пакетов чувствительно, мы можем обратить вспять установку и выбрать аутентифицировать с ключем, содержащим открытые ключи лиц создавших пакеты (настроен с extra_keyrings параметром); mini-dinstall тогда проверит источник каждого входящего пакета, анализируя подпись, интегрированную в *.changes файл.

Вызов mini-dinstall фактически запускает с демона в фоновом режиме. Пока этот демон

выполнения, она будет проверять наличие новых пакетов в incoming/ каталоге каждые полчаса; когда новое пакет прибывает, он будет перемещен к архиву и надлежащему Packages.gz и Sources.

файлы gz будут востановлены. Если выполнение демона является проблемой, mini-dinstall может также быть вручную вызван в пакетном режиме (с помощью опции -b) каждый раз пакет загружается в incoming/ каталог. Другие возможности, предоставляемые mini-dinstall, задокументированы в mini-dinstall на первой странице руководства.

EXTRA Генерация со знаком архива

APT проверяет цепочку криптографических подписей на пакетах это ханьцы -

обробатывая прежде, чем установить их, чтобы гарантировать их подлинность (см. раздел 6.5,

Страница 121 “Checking Package Authenticity”). С частными APT могжет быть проблема, так как машина используя их будет продолжать отображать предупреждения о неподписаных пакетах. Хороший администратор поэтому интегрирует личные архивы

с безопасным механизмом APT.

Чтобы помочь с этим процессом, mini-dinstall включает конфигурацию release_signscript -uration опцию, которая позволяет определять сценарий, чтобы использовать для генерации подписи. A

хорошей отправной точкой является sign-release.sh сценарий предусмотреный mini-dinstall

пакет в/usr/share/doc/mini-dinstall/examples/; локальные изменения могут быть соответственны.

15.4. Становление специалистом по обслуживанию пакетов

15.4.1. Обучение созданию пакетов

Создание качественного пакет Debian не всегда простая задача, и становление специалистом по обслуживанию пакета состоит из некоторого изучения теории и практики. Это не простой вопрос создания и установки программного обеспечения; основная часть сложности приходит от понимания

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

Правила

Пакет Debian должен соответствовать точным правилам, скомпилированным в политике Debian и каждый специолист должен знать их. Нет никакого требования, чтобы знать их наизусть, но

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

https://www.debian.org/doc/debian-policy/

Процедуры

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

https://www.debian.org/doc/manuals/developers-reference/

Инструменты

Много инструментов помогают специалистам по обслуживанию пакета в своей работе. В этом разделе описываются они быстро, но это не дает полного их понимания, так как у них всех есть собственная подробная документация.

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

Это также не является исчерпывающим: отсутствие выдаваемых ошибок Lintian не должно быть интерпретировано как доказательство, что пакет совершенен; самое большее это отсутствие

наиболее распространенных ошибок

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

Thdevscripts devscripts пакет содержит много программ, помогающих широким спектром А

Программы для облегчения работы Debian разработчика:

• debuild позволяет генерировать пакет (с dpkg-buildpackage) и выполнять lintian проверяя его соответствие политике Debian впоследствии.

• debclean чистит исходный пакет после того, как двоичный пакет был сгенерирован.

• dch позволяет быстрое и простое редактирование debian/changelog файла в исходном пакете.

• uscan проверяет, была ли новая версия программного обеспечения выпущена автором; это требует debian/watch файла с описанием расположения таких выпусков.

• debi позволяет устанавливать (с dpkg-i) пакет который был только создан без потребность ввести его полное имя и путь.

• Подобным способом debc позволяет сканировать содержание недавно сгенерированного пакета

(с dpkg-c), без необходимости ввода его полного имени и пути.

• bts управляет отслеживанием ошибок системы из командной строки; это программа автоматически генерирует соответствующие электронные письма.

• debrelease загружает недавно сгенерированный пакет на удаленный сервер без необходимости

вводить полное имя и путь связанного с .changes файлом.

• debsign подписывает *.dsc и *.changes файлы.

• uupdate автоматизирует создание новых версий пакетов когда апгрейд был выпущен.

debhelper и гdh-make Debhelper, ряд сценариев, упрощающих создание совместимых с политикой

пакетов; эти сценарии вызваны от debian/rules. Debhelper был широко принят в Debian, о чем свидетельствует тот факт, что он используется большинством официальных пакетов Debian.

У всех команд, которые это содержат, есть префикс dh_.

dh_make сценарий (dh-make пакет) создает файлы, требуемые для генерации пакета Debian pack-

age, в каталоге, первоначально содержатся источники для части программного обеспечения. Как можно догадаться из название программы, сгенерированные файлы используют debhelper по умолчанию.

dupload и dput dupload и dput команды позволяют загружать пакет Debian на (возможно и на удаленный) сервер. Это позволяет разработчикам публиковать свой пакет на основном Debian

сервер (ftp-master.debian.org) так, чтобы это могло быть интегрировано к архиву и распределено зерколом. Эти команды берут *.changes файл в качестве параметра и выводят другие соответствующие файлы из его содержания.