мета-данные страницы
  •  

Различия

Показаны различия между двумя версиями страницы.

Ссылка на это сравнение

Предыдущая версия справа и слеваПредыдущая версия
Следующая версия
Предыдущая версия
glossary:gnu_linux:deb_pkg [2026/03/03 13:54] radi0devglossary:gnu_linux:deb_pkg [2026/03/03 14:07] (текущий) radi0dev
Строка 1: Строка 1:
 ====== deb пакет ====== ====== deb пакет ======
 +
 +deb пакеты делятся на бинарные (.deb) и исходные (.tar.gz).
  
 Deb-пакет это обычный архив файлов, содержащий файлы, предназначенные для установки в систему, а так же некоторые служебные файлы, необходимые для того чтобы эту установку сделать гибкой. При помощи программы ar упаковано в один файл: Deb-пакет это обычный архив файлов, содержащий файлы, предназначенные для установки в систему, а так же некоторые служебные файлы, необходимые для того чтобы эту установку сделать гибкой. При помощи программы ar упаковано в один файл:
Строка 86: Строка 88:
 ++++ ++++
  
 +=== templates ===
 +
 +Если используется возможность конфигурации/реконфигурации пакета в системе Debconf (скрипт config), то этот файл содержит шаблоны диалогов с пользователем.
 +
 +=== conffiles ===
 +
 +Содержит перечень файлов пакета, которые являются конфигурационными. По одному файлу на одну строку. Эти файлы при апгрейдах пакета заменяться не будут (или же будут задаваться вопросы с предложением о замене). Подробнее о содержимом см. ''man debconf-devel''.
 +
 +==== Утилиты для работы/генерации содержимого DEBIAN/ ====
 +
 +=== dpkg-gencontrol ===
 +
 +Осуществляет генерацию файла control на базе шаблона этого файла, составляемого майнтенером, а так же дополнительных параметров, передаваемых из командной строки. В частности, устанавливает номер версии пакета, архитектуру итп. Номер версии обычно берется из файла changelog, однако иногда бывает необходимо из одного src-пакета собрать несколько deb-пакетов с разными номерами версий. Опция -v поможет Вам в этом.
 +
 +=== dpkg-shlibdeps ===
 +
 +
 +Вычисляет зависимости для исполняемых файлов и библиотек. Майнтенер обычно указывает Build-зависимости (зависимости сборки), а Depend-зависимости (зависимости необходимые для работы) вычисляются с помощью этой (или подобных) утилит. Такой подход дает возможность не привлекать майнтенера при смене имен библиотек от которых зависит пакет.
 +
 +=== dpkg-parsechangelog ===
 +
 +Позволяет извлекать из changelog-файла некоторые параметры, вроде номера версии, координат и имени майнтенера итп. Результаты работы этой утилиты могут использоваться как входные параметры для утилит вроде dpkg-gencontrol.
 +
 +=== dpkg-architecture ===
 +
 +Позволяет извлекать информацию (манипулировать ей) об архитектуре системы для которой собирается пакет или на которой собирается пакет. Выходные данные так же могут использоваться для использования в других утилитах. Например при генерации файла control утилитой dpkg-gencontrol. 
 +
 +==== Проверка соответствия пакета современным требованиям Debian ====
 +
 +После того как пакет создан, можно получить информацию о его содержимом с помощью вышеупомянутой утилиты dpkg:
 +  * ''dpkg -I package.deb'' - выведет общую информацию о пакете, включая содержимое control-файла; 
 +  * ''dpkg -c package.deb'' - выведет полный перечень файлов пакета. 
 +
 +После этих двух проверок (все файлы на месте, информация в финальном control корректна), можно запустить одну из двух проверки пакета на соответствие текущему полиси.
 +
 +Такие проверки осуществляются при помощи программы lintian. Проверяются такие параметры, как правильность расположения двоичных файлов, наличие man-страниц, проверяется на наличие ошибок описание пакета в control-файле, просматривается файл copyright и так далее. Идеальный вариант - добиться от создаваемого пакета такого состояния, что lintian не выводит предупреждений/сообщений об ошибках:
 +  * ''lintian -is package.deb'' - покажет подробную информацию о проблемах в пакете.