Когда я собираю пакет debian, часто создается множество связанных пакетов, объединенных вместе, а также версии foo-dbgsym-* и пакеты foo-doc.

Например, даже относительно простой пакет, такой как make, создаст дополнительные пакеты:

make-dbgsym_4.2.1-1.2_amd64.deb
make-guile-dbgsym_4.2.1-1.2_amd64.deb
make-guile_4.2.1-1.2_amd64.deb
make_4.2.1-1.2_amd64.deb

Могу ли я указать системе сборки собирать только make, а не make-guile?

Вот процесс, который я использую для сборки пакета:

apt-get source make
cd make*
dpkg-buildpackage --build=binary --no-sign

Есть ли общий процесс, как я могу указать, какие пакеты я хочу собрать?

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

2
400 the Cat 7 Сен 2021 в 20:54

1 ответ

Лучший ответ

Пакеты dbgsym можно отключить с помощью параметра сборки noautodbgsym :

DEB_BUILD_OPTIONS=noautodbgsym dpkg-buildpackage -us -uc

Также можно создавать только архитектурно-зависимые или архитектурно-независимые пакеты, изменив параметр --build на dpkg-buildpackage.

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

Некоторые пакеты поддерживают профили сборки; вы можете определить это, ища Build-Profiles и/или зависимости в угловых скобках в debian/control. В таких пакетах параметр -P dpkg-buildpackage выбирает соответствующий профиль(и), иногда в сочетании с параметром сборки. Например, для пакетов с профилем nocheck

DEB_BUILD_OPTIONS=nocheck dpkg-buildpackage -Pnocheck

Пропустит связанные с тестированием сборки-зависимости (если они есть) и пропустит выполнение тестов.

На самом деле, последняя версия пакета make претендует на предоставление профиля сборки noguile, поэтому должна быть возможность пропустить Guile с

dpkg-buildpackage -Pnoguile -us -uc

За исключением того, что определение профиля неполное.

Всегда можно отредактировать debian/control, чтобы удалить ненужные пакеты, и debian/rules, чтобы удалить ненужные шаги сборки.

3
Stephen Kitt 8 Сен 2021 в 21:50