#c #ubuntu #32bit-64bit #deb
#c #убунту #32-битный-64-битный #deb
Вопрос:
У меня есть приложения, которые успешно компилируются с помощью переключателя -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. man pbuilder
это хорошее введение. Чтобы начать работу, вам понадобится:
sudo pbuilder --create --architecture i386
sudo pbuilder --build mypackage.dsc
Комментарии:
1. Чтобы создать новый пакет с нуля:
pdebuild --architecture i386
в каталоге, который содержит debian/ directory .
Ответ №2:
Это начинается с вызова debuild с опцией -ai386, которая изменит архитектуру, для которой создан пакет.
Конечно, вы должны убедиться, что пакет содержит сборку приложения i386.
Ответ №3:
Вы не делаете ничего, что отличается от создания 64-битного .deb. За исключением того, что вы включаете 32-битную сборку своего приложения.
Управляющий файл определяет архитектуру, поэтому убедитесь, что вы выбрали правильную.
Комментарии:
1. Неправда. Пакеты Debian включают архитектуру пакета, которая явно указана.
2. @Michael, так что это явно указано с параметром, который, как представляется, не имеет документации, какой-либо?
3. На самом деле, структура файлов управления пакетами очень хорошо документирована. Включая параметр архитектуры .
4. @Michael, ну да, я читал другой ответ, в котором упоминается -ai386, и не смог его найти. Указание архитектуры является частью создания пакета deb, независимо от того, используете ли вы amd64 или i386, выбор архитектуры по-прежнему является частью процесса.
5. Точно. И, похоже, это часть процесса, о котором у OP есть вопросы.