19.4.2 Кросс-сборка пакетов

Индекс

19.4.2 Кросс-сборка пакетов

Вы можете обнаружить, что сборка пакетов для целевой платформы на самой этой платформе весьма трудна. Возможно, более простым путем будет сборка на другой платформе, как правило под Linux. Этот процесс называется кросс-сборкой, поскольку вы должны собрать пакеты в системе, которая специальным образом подготовлена к сборке пакетов для другой системы.

Ключевые моменты при кросс-сборке таковы:

* Вы должны собирать бинарные пакеты с помощью правильного кросс-компилятора, предназначенного для целевой платформы.

* Вы должны установить правильную платформу в spec-файлах пакетов, которые вы собираете.

* Возможно вам придется обработать зависимости вручную и отключить автоматическую их генерацию.

Разворачивание среды кросс-сборки часто становится более массивной задачей, чем ожидается. Если есть возможность собирать пакеты на целевой платформе, сделайте это. Кросс-сборка в основном должна использоваться в случаях, когда нативная сборка невозможна. Например, множество наладонных компьютеров не имеют достаточно памяти и быстродействия процессора, чтобы осуществлять на них промышленную сборку компонентов.

Для сборки бинарников, предназначенных к запуску на иных платформах, необходим кросс-компилятор, который запускается на инструментальной платформе и собирает бинарные модули для целевой. Основное применение кросс-компиляторов - сборка программ для встроенных систем и маленьких компьютеров.

Linux компилятор gcc может работать в качестве кросс-компилятора. Для этого должны быть установлены дополнительные компоненты, соответствующие инструментальной и целевой платформам. Для более подробного изучения вопроса ознакомьтесь с документацией на сайте GNU: www.gnu.org .

Кроме компиляции для целевой платформы вы должны озаботиться тем, чтобы пакеты были отмечены как пакеты именно для нужной архитектуры. В противном случае утилита rpm будет работать с ошибками при установке пакетов.

Передать целевую архитектуру при сборке можно с помощью опции утилиты rpmbuild:

rpmbuild bi --target arm-sharp-linux

Подобная команда задает целевую процессорную архитектуру - ARM производства Sharp и операционную систему - Linux.

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

Далее - Раздел 20. Изменение поведения RPM
Назад - Настройка окружения сборки
Содержание