Как я могу собрать 32-битную (i386) .deb на 64-битной коробке? - PullRequest
22 голосов
/ 29 октября 2011

У меня есть приложения, которые успешно компилируются с ключом -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.

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

Ответы [ 3 ]

18 голосов
/ 31 октября 2011

Ответ зависит от сложности вашей сборки. Когда для сборки достаточно обычных 64-битных пользовательских инструментов, просто укажите архитектуру через -a

debuild -ai386

Однако часто бывают случаи, когда это не работает, и в этих случаях вам понадобится pbuilder. pbuilder создает чистую систему Debian / Ubuntu в среде chroot-ed. man pbuilder - хорошее введение. Для начала вам понадобится:

sudo pbuilder --create --architecture i386
sudo pbuilder --build mypackage.dsc
3 голосов
/ 30 октября 2011

Он начинается с вызова debuild с параметром -ai386, который изменит архитектуру, для которой построен пакет.

Конечно, вы должны убедиться, что пакет содержит сборку приложения i386.

0 голосов
/ 30 октября 2011

Вы не делаете ничего, кроме создания 64-битного .deb.За исключением того, что вы включили 32-битную сборку вашего приложения.

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

...