Как найти сведения о конфигурации бинарного файла ‘.deb’?

Вопрос или проблема

Несмотря на поиск в интернете, я так и не смог найти чёткого описания, как ‘dpkg’ в Debian сравнивается с установкой из исходников.

В частности, если я устанавливаю пакет из исходников, я могу указать различные флаги сборки или настроить Makefile перед установкой. Как я могу найти эквивалентные настройки, использованные при создании результирующего бинарного файла из ‘.deb’ файла?

Я могу придумать два варианта:

  1. Запускается стандартная команда ‘./config’ и ‘make’ с флагами сборки. Полученные бинарные файлы затем объединяются в пакет ‘.deb’.
  2. Пакет ‘.deb’ содержит исходный код. Программное обеспечение ‘dpkg’ затем указывает необходимые настройки ‘./config’ и флаги сборки.

Внутренняя структура “deb” пакета состоит из трех основных частей: секции управления, секции данных и дополнительной секции скриптов. Каждая из этих частей выполняет специфическую функцию, обеспечивающую правильное распространение, установку и работу упакованного программного обеспечения.

Секция управления: эта секция содержит метаданные пакета, включая такие сведения, как имя пакета, версия, описание, архитектура, зависимости и другая информация, необходимая для правильного управления пакетом. Файлы в этой секции хранятся в каталоге с именем DEBIAN (заглавными буквами) внутри “deb” пакета.

Секция данных: эта секция содержит файлы и каталоги, которые будут установлены на целевой системе. Структура каталогов в этой секции отражает структуру каталогов файловой системы целевой системы.

Дополнительные скрипты: .deb пакеты могут включать скрипты, которые выполняются до или после установки или при удалении пакета. Эти скрипты, которые являются частью секции управления, помогают настроить программное обеспечение, решить проблемы с зависимостями или выполнить другие задачи, необходимые для корректной установки программного обеспечения. Следующие имена стандартизированы для скриптов:

preinst: выполняется перед установкой файлов пакета.
postinst: выполняется после установки файлов пакета.
prerm: выполняется перед удалением файлов пакета.
postrm: выполняется после удаления файлов пакета.

.deb пакеты являются двоичными файлами в формате ar, которые могут быть извлечены с помощью инструментов, таких как ar или dpkg.
Используя их, вы получите три файла:

debian-binary: небольшой файл, указывающий версию формата пакета.
control.tar.gz: сжатый tar файл, содержащий секцию управления пакета.
data.tar.gz или data.tar.xz: сжатый tar файл, содержащий секцию данных пакета.

Как упаковать программу в формате “deb”.

Необходимые инструменты: dpkg-dev debhelper devscripts

Получите исходный код

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

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

Создайте .deb пакет из родительского каталога пакета, используя команду dpkg-deb.

Ответ или решение

Чтобы найти детали конфигурации бинарного файла ‘.deb’, когда вы интересуетесь, какие параметры сборки использовались, важно понять внутреннюю структуру и процесс создания этих пакетов. В отличие от сборки из исходного кода, где вы можете самому указать различные флаги и настроить Makefile, пакеты ‘.deb’ уже содержат предварительно собранный бинарный код и включают различные компоненты, которые позволяют легко управлять установкой и удалением программ.

Основные элементы структуры ‘.deb’

  1. Раздел управления: Этот раздел включает метаданные пакета — информация о названии пакета, версии, описании, архитектуре и зависимостях. Эти файлы находятся в директории DEBIAN и играют решающую роль в управлении пакетами.

  2. Данные и скрипты: Раздел данных содержит сами файлы программы и их целевую структуру файловой системы. Кроме того, в пакете могут быть файлы скриптов, которые запускаются до или после установки/удаления. Эти скрипты могут включать команды для настройки окружения или выполнения других задач.

  3. Формат и инструменты для работы с ‘.deb’: ‘.deb’ пакеты представляют собой бинарные файлы формата ar и их можно извлекать с помощью утилит, таких как ar или dpkg. Команда dpkg-deb -x пакет.deb целевая_папка позволяет извлекать содержимое пакета. Это поможет в изучении структуры и содержимого пакета, но не раскрывает детали сборки.

Как узнать параметры сборки?

Чтобы выяснить параметры, использованные при сборке программ в пакете ‘.deb’, вы можете попытаться восстановить процесс следующим образом:

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

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

  3. Использование dpkg-source и debuild: Эти утилиты позволяют восстановить процесс сборки пакета из исходников. Используя команды dpkg-source -x файл.dsc и debuild, вы можете попытаться воспроизвести сборку самостоятельно.

  4. Анализ билд-скриптов: Если в ‘.deb’ есть скрипты, такие как postinst или prerm в директории DEBIAN, они могут дать дополнительную информацию о том, как программы подготавливаются или настраиваются после установки.

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

Оцените материал
Добавить комментарий

Капча загружается...