|
|||||||
Сборка deb-пакетов из исходников для Astra Linux 1.6
Время создания: 26.05.2025 16:56
Текстовые метки: linux, astra, debian, deb, пакет, сборка, компиляция, репозитарий, исходники, src
Раздел: Компьютер - Linux - Дистрибутив Astra Linux
Запись: xintrea/mytetra_syncro/master/base/1748267791nos9v0jei9/text.html на raw.github.com
|
|||||||
|
|||||||
Согласно статье "О лицензировании, применении и сертификации программ из состава диска «Операционная система специального назначения «Astra Linux Special Edition РУСБ.10015-01». Средства разработки»", известно, что существующий в Astra Linux 1.6 диск "Средства разработки" содержит несертифицированное ПО. А это значит, что если библиотека или программа, используемая в СПО, находится на диске "Средства разработки", то просто так пройти процедуру сертификации СПО не получится. Вот что предлагается делать в вышеуказанной статье: Порядок действий для использования программ из состава диска «Средства разработки»: Вариант 1 (рекомендуемый). Включение исходных текстов программ. Для использования этого варианта запросить у ООО «РусБИТех-Астра» исходные тексты необходимых программ и включить их в состав разрабатываемого СПО с проведением сертификации на все предъявляемые к СПО требования по безопасности информации; Обращение в платную техподдержку для получения исходников будет делом неспешным. Чтобы получить, по-факту, исходники свободного программного обеспечения, нужно доказать, что они действительно нужны. Техподдержка будет запрашивать подробности где и как будут использоваться исходники (которые по-факту лежат для всего мира в открытом доступе). Вопрос лишь в том, какой конкретно срез исходников использовался для сборки того или иного пакета в Astra Linux. Поэтому взять исходники из официального репозатария Debian просто так не получится. По срокам примерный расклад такой: в нашем случае получение исходников затянулось более чем на 20 дней. Далее все повествование будет идти на основе сборки библиотеки libpoppler. Итак, в ответ на запрос, техподдержка предоставит архив *.tgz с исходниками. Естественно, никаких инструкций по сборке из исходников предоставлено не будет. Предполагается, что в каждой организации должен быть инженер-майнтейнер, который знает внутреннее устройство систем сборки репозитариев Debian. Сразу надо сказать, что официальная документация, которая доступна в интернете и в личном кабинете - неполная. Вот ее образцы: Руководство по сборке и обновлению пакетов https://docs.astralinux.ru/latest/guide/package/ Рекомендации по сборке программных пакетов и написанию к ним документации на платформе Astra Linux https://wiki.astralinux.ru/download/attachments/37290449 Все инструкции по сборке сводятся к одной фразе: "Сборку пакетов из пакетов с исходными текстами следует выполнять в ОС при помощи команды dpkg-buildpackage". Это уже кое-что! Итак, что надо делать? В начале надо распаковать *.tgz - архив: tar -zxvf ИмяФайла.tgz (Эту и последующие команды, если не оговорено иного, надо выполнять от обычного пользователя). Содержимое распакуется в такие файлы: poppler_0.48.0-2+deb9u4+ci202305291547+astra2.debian.tar.xz poppler_0.48.0-2+deb9u4+ci202305291547+astra2.dsc poppler_0.48.0.orig.tar.xz В файле *.orig.tar.xz лежат апстримовые исходники библиотеки. Исходники из апстрима - это такие исходники, которые предоставляют авторы библиотеки. Естественно, авторы не могут предусмотреть все варианты сборки под все существующие дистрибутивы Linux, и дистрибутив Astra Linux, который зиждется на Debian Linux, не исключение. Поэтому помимо архива с апстрим-исходниками идет еще и архив с дистрибутиво-зависимыми изменениями. Этот архив имеет расширение *.debian.tar.xz. В нем находятся патчи, которые применяются к апстримовым исходникам, чтобы исходники могли собраться в дистрибутиве Debian (и, соответственно, в Astra Linux). В файле *.dsc находится текстовое описание (description) того, как собирать пакет из исходников, описание сделано в специальном формате. Перед тем как собирать, рекомендуется установить пакеты с нужными инструментами сборки. Команда от рута: apt install build-essential devscripts debhelper Далее надо запустить саму сборку из исходников. По сути, это делается парой команд. Вначале дается команда распаковки и применения патчей. Она выполняется от обычнгого пользователя, в каталоге, где лежит *.dsc-файл: dpkg-source -x poppler_0.48.0-2+deb9u4+ci202211281202+astra1.dsc В результате будет создан подкаталог poppler-0.48.0. Надо перейти в этот подкаталог, и запустить сборку: dpkg-buildpackage -us -uc -b Здесь опции обозначают следующее: -us — не подписывать исходный код. -uc — не подписывать файлы изменений (*.changes). -b — собрать только бинарный пакет (без исходников). Если нужна отладочная сборка, то можно воспользоваться командой: DEB_BUILD_OPTIONS="nostrip noopt" dpkg-buildpackage -us -uc -b Скорее всего, хоть релизная, хоть отладочная сборка завершится ошибкой примерно такого содержания: dpkg-checkbuilddeps: ошибка: Unmet build dependencies: debhelper (>= 9) dh-autoreconf libcairo2-dev (>= 1.10.0) libopenjp2-7-dev libjpeg-dev libtiff-dev liblcms2-dev gtk-doc-tools (>= 1.14) libgirepository1.0-dev (>= 1.42.0-2~) gobject-introspection (>= 1.42.0-2~) libnss3-dev libglib2.0-doc libcairo2-doc Это значит, что не хватает какого-то пакета, перечисленного в сообщении об ошибке. Надо установить их все. От рута дается команда: apt install debhelper dh-autoreconf libcairo2-dev libopenjp2-7-dev libjpeg-dev libtiff-dev liblcms2-dev gtk-doc-tools libgirepository1.0-dev gobject-introspection libnss3-dev libglib2.0-doc libcairo2-doc Затем снова, от обычного пользователя, дается команда сборки. В результате в том же каталоге где лежит *.dsc-файл, появятся deb-файлы: gir1.2-poppler-0.18_0.48.0-2+deb9u4+ci202305291547+astra2_amd64.deb libpoppler64_0.48.0-2+deb9u4+ci202305291547+astra2_amd64.deb libpoppler-cpp0v5_0.48.0-2+deb9u4+ci202305291547+astra2_amd64.deb libpoppler-cpp-dev_0.48.0-2+deb9u4+ci202305291547+astra2_amd64.deb libpoppler-dev_0.48.0-2+deb9u4+ci202305291547+astra2_amd64.deb libpoppler-glib8_0.48.0-2+deb9u4+ci202305291547+astra2_amd64.deb libpoppler-glib-dev_0.48.0-2+deb9u4+ci202305291547+astra2_amd64.deb libpoppler-glib-doc_0.48.0-2+deb9u4+ci202305291547+astra2_all.deb libpoppler-private-dev_0.48.0-2+deb9u4+ci202305291547+astra2_amd64.deb libpoppler-qt4-4_0.48.0-2+deb9u4+ci202305291547+astra2_amd64.deb libpoppler-qt4-dev_0.48.0-2+deb9u4+ci202305291547+astra2_amd64.deb libpoppler-qt5-1_0.48.0-2+deb9u4+ci202305291547+astra2_amd64.deb libpoppler-qt5-dev_0.48.0-2+deb9u4+ci202305291547+astra2_amd64.deb poppler-dbg_0.48.0-2+deb9u4+ci202305291547+astra2_amd64.deb poppler-utils_0.48.0-2+deb9u4+ci202305291547+astra2_amd64.deb Это и есть deb-пакеты, собранные из исходников. |
|||||||
Так же в этом разделе:
|
|||||||
![]() |
|||||||
|
|||||||
|