Глава 8. Рецепты

Содержание

Введение
Синтаксис рецептов
Именование рецептов: Названия, версии и релизы
Переменные
Заголовок
Исходный код: Загрузка, применение патчей и дополнительные файлы
Директории: Что, где и как
WORKDIR: Рабочая директория
S: Распакованный исходный код
D: Директория назначения
"Staging" директории
FILESPATH/FILESDIR: Поиск локальных файлов
Базовые примеры
Hello world
Основанный на autotools пакет
Зависимости: Что нужно для сборки и/или запуска пакета?
Методы: Встроенные методы для облегчения процесса сборки
Упаковка: Определение пакетов и их содержимого
Философия
Пакеты и файлы по умолчанию
Символы подстановки
Проверка пакетов
Исключение файлов
Именование в стиле Debian
Пустые пакеты
Задачи: Играем с задачами
Классы: Выделение общей функциональности
"Staging": Делаем заголовочные файлы и библиотеки доступными для сборки
Autoconf: Все о autotools
Скрипты установки: Запуск скриптов при установке и/или удалении пакета
Конфигурационные файлы
Отношения между пакетами
Fakeroot: Что можно сделать с необходимостью "root" доступа
Native: Пакеты для хоста
Разработка: Стратегии написания рецептов
Продвинутая работа с версиями: Что делать с rc и pre версиями
Require/include: Переиспользование содержимого рецептов
Python: Добавление продвинутой функциональности
Указание предпочтительных версий пакета
Скрипты инициализации: Как управлять демонами
Альтернативы: Как обрабатывать одну и ту же команду в нескольких пакетах
Пример альтернативных команд
Использование update-alternatives
Изменчивые файлы: Как работать с /var директрией
Описание изменчивых файлов
Журналирование и файлы журналов
Summary
Разное

Введение

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

Во многом этот процесс схож с созданием deb и rpm пакетов для обычного настольного дистрибутива с одним главным отличием – в OpenEmbedded используется кросс-компиляция. Обычно это делает задачу значительно более сложной (в зависимости от того, насколько хорошо приложение приспособлено для кросс-компиляции), чем в других пакетных системах, а иногда и вообще невозможной.

Предполагается, что вы уже знакомы с bitbake: с процессом работы, структурами директорий, конфигурацией и использованием системы контроля версий. Если это не так, то сначала рекомендуется ознакомится с главой по bitbake.