Как я могу построить 32-битный (i386).deb на 64-битном поле?
У меня есть приложения, которые успешно компилируются с помощью переключателя -m32 (в DMD и/или GCC) для создания:
appname: ELF 32-bit LSB executable, Intel 80386, version 1 (SYSV), dynamically linked
(uses shared libs), for GNU/Linux 2.6.15, not stripped
Исходные пакеты, которые я создал, отлично работают, как на 32-битном, так и на 64-битном Ubuntu для создания соответствующих двоичных .debs.
Я хотел бы создать i386.deb на той же 64-битной машине, которую я использую для создания 64-разрядного .deb.
Возможно ли это, и где искать инструкции?
Ответы
Ответ 1
Ответ зависит от сложности вашей сборки. Если для сборки достаточно обычных 64-битных пользовательских инструментов, просто укажите архитектуру через -a
debuild -ai386
Однако часто бывают случаи, когда это не работает, и в этих случаях вам понадобится pbuilder. pbuilder создает чистую систему Debian/Ubuntu в chroot-ed среде. man pbuilder
- хорошее введение. Для начала вам понадобится:
sudo pbuilder --create --architecture i386
sudo pbuilder --build mypackage.dsc
Ответ 2
Он начинается с вызова debuild с параметром -ai386, который будет
измените архитектуру, для которой создан пакет.
Конечно, вы должны убедиться, что пакет содержит сборку i386 приложения.
Ответ 3
Вы не делаете ничего, кроме создания 64-битного .deb. За исключением того, что вы включаете 32-битную сборку своего приложения.
Файл управления указывает архитектуру, поэтому убедитесь, что вы выбрали правильный.