Подтвердить что ты не робот

Как я могу построить 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.

Возможно ли это, и где искать инструкции?

4b9b3361

Ответ 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-битную сборку своего приложения.

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