Как я могу создать об/мин для цели i386 на x86-64 машине?

Запуск с нижней части:

Я не думаю, что это имеет значение.

Ну, это имеет значение немного. CentOS использует об/мин, но много других дистрибутивов не делают. Как Вы упаковываете вещи, действительно зависит от того, где Вы ожидаете устанавливать их.

Как я превращаю его в об/мин?

Необходимо создать файл СПЕЦИФИКАЦИИ об/мин, который является набором метаданных о пакете и правилах, необходимых для соединения его. Проекту Fedora назвали руководство, Как создать RPM-пакет, который должен запустить Вас.

Как создатель пакета Вы добираетесь для решения, где файлы установлены. Хорошая идея состоит в том, чтобы поместить Ваш .sh обертка в /usr/bin - или некоторый другой каталог, который будет в Вас $PATH - и затем помещенные другие файлы поддержки во что-то как /usr/lib/.

8
27.04.2016, 21:30
2 ответа

Из документации Fedora для об/мин, файлов спецификации и rpmbuild:

The --target option sets the target architecture at build time. Chapter 3,
Using RPM covers how you can use the --ignoreos and --ignorearch options 
when installing RPMs to ignore the operating system and architecture that 
is flagged within the RPM. Of course, this works only if you are installing 
on a compatible architecture.

On the surface level, the --target option overrides some of the macros in 
the spec file, %_target, %_target_arch, and %_target_os. This flags the RPM 
for the new target platform.

Under the covers, setting the architecture macros is not enough. You really 
cannot create a PowerPC executable, for example, on an Intel-architecture 
machine, unless you have a PowerPC cross compiler, a compiler that can make 
PowerPC executables.

http://docs.fedoraproject.org/en-US/Fedora_Draft_Documentation/0.1/html/RPM_Guide/ch-rpmbuild.html

Так, как это говорит, удостоверьтесь, что у Вас есть дополнительные установленные компиляторы (например, gcc.i686 и gcc.x86_64).

6
27.01.2020, 20:12
  • 1
    Да. Термин для него, равно как и упомянуто в отрывке, является кросс-компилятором. Это - то, что необходимо установить, и это должно быть вполне прилично зарегистрировано, как сделать это (кросс-компиляция, в то время как не что-то обычный пользователь будет встречаться очень часто, довольно распространено среди разработчиков). –  a CVn 16.09.2013, 10:26

Поскольку вы используете флаг "- bb" , что означает, что вы собираете двоичный файл , поэтому вам не нужно устанавливать компиляторы для других архитектур.

Просто избавьтесь от строки «Buildarch» в вашем файле спецификации и передайте ее из командной строки

--target i386

или

--target x86_64

, и он должен создать rpms за вас.

3
27.01.2020, 20:12

Теги

Похожие вопросы