Позвольте мне уточнить мой вопрос с некоторыми дополнительными деталями о том, что я пытаюсь достичь.
Моя конечная цель — получить два пакета debian: один, содержащий двоичные файлы, созданные для x86, а другой для ARM. В debian / control у меня определены два разных пакета, и для архитектуры в настоящий момент установлено «any» для обоих пакетов.
Я пытался следовать инструкциям на https://wiki.debian.org/PkgSplit а также, глядя на пример rules.multi2 для debhelper (http://www.fifi.org/doc/debhelper/examples/rules.multi2), но пока без везения.
Источником является Qt-проект, который должен быть развернут как для x86, так и для ARM.
Я успешно собираюсь с помощью dpkg-buildpackage, но, как бы я ни старался, мой исходный код компилируется только один раз.
Каков был бы идеальный способ достичь моей цели, достаточно ли «просто» ввести правильную информацию в debian / rules, чтобы это работало, или мне нужно использовать другой подход? Я не совсем уверен, возможно ли это вообще; что для начала я просто выбрал неправильный путь (я новичок в мире упаковки Debian).
(Я намеренно не включаю мои debian / control и debian / rules на этом этапе, при необходимости я предоставлю более подробную информацию, поскольку на этом этапе они немного запутаны).
Редактировать:
Этот комментарий меня привел к PkgSplit https://askubuntu.com/questions/246718/change-environment-variables-in-debian-rules-according-to-debian-control-targets/908351#908351
Но для меня ответ немного загадочный, поэтому рука помощи будет очень цениться.
нет.
один прогон dpkg-buildpackage
создаст бинарные пакеты для одной архитектуры (либо amd64
, или же i386
, или же armhf
или же s390x
или что угодно).
просто позвони dpkg-buildpackage
несколько раз (пересечь) сборку для нескольких архитектур:
dpkg-buildpackage -rfakeroot
dpkg-buildpackage -rfakeroot --host-arch i386
dpkg-buildpackage -rfakeroot --host-arch armhf
это создаст (максимум) 3 пакета: один из нативной архитектуры (скорее всего: amd64
), один для x86_32
(ака i386
) и один для малины (armhf
).
кстати, PkgSplit Документы говорят о создании нескольких пакетов для одной и той же архитектуры. например когда у вас есть библиотека, вы обычно хотите разделить ее на библиотечную часть (установка libfoo.so.1
) и часть разработки (установка заголовочных файлов).
Других решений пока нет …