Как я могу собрать пакеты i386 и amd64 на своем ноутбуке amd64, используя debuild

Я хотел бы иметь возможность создавать несколько версий (i386 а также amd64) моего пакета, который имеет нетривиальные зависимости (gtk и т. д.).

Мой скрипт сборки использует cmake,

На данный момент команда debuild -i -us -uc -b только строит amd64 на моем дистрибутиве Ubuntu 64bit, и я не установил никакой кросс-компиляции.

Как я могу собрать двоичные файлы для обеих платформ?

1 ответ

Решение

Упаковка (т.е. debuild) не самая сложная часть: создание приложения.

Есть много способов построить i386 двоичные файлы в 64-битной системе

Использование 32-битной виртуальной машины

Установка одного через virtualbox проста.

Это, безусловно, самый простой способ, но он займет значительный объем дискового пространства, и вам потребуется настроить всю систему с нуля.

Настройка chroot

Идея состоит в том, чтобы создать минимальную песочницу i386 в вашей 64-битной установке.

Вы будете устанавливать все зависимости сборки инструментов и i386 вашего приложения в chroot и выполнять сборку оттуда.

Этот подход легче, чем у vm, и предлагает большую изоляцию.

Учебник кайдзоу четко объясняет, как это сделать

Chroot, готовый для сборки приложения gtk vala, съедает около 700 Мб на вашем жестком диске.

Использование кросс-компиляции

cmake может легко создать ваше приложение, если у вас установлен мультибиблиотечный набор инструментов.

Мультибиблиотечный набор инструментов можно установить через

sudo apt-get install g++-multilib 

Затем вы должны указать m32 параметры для cmake, чтобы он мог создавать двоичные файлы i386, что легко.

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

При условии apt с вами боги, это можно сделать с помощью:

dpkg --add-architecture i386 
apt-get update
apt-get install libgtk-3-dev:i386 libgee-0.8-dev:i386 ...

Как только это будет сделано, вы можете упаковать свой блестящий i386 двоичные файлы с

debuild -ai386 -i -us -uc -b
debuild clean   
Другие вопросы по тегам