Зависимости: Что нужно для сборки и/или запуска пакета?

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

Используются две переменные для описания зависимостей:

DEPENDS

Определяет зависимости сборки, перечисляя рецепты bitbake, которые должны быть собраны перед сборкой рецепта. Эти программы (такие как flex-native) или библиотеки (libpcre) необходимы для сборки пакета.

RDEPENDS

Определяет зависимости выполнения, перечисляя пакеты, которые должны быть установлены перед установкой текущего пакета. Эти программы или библиотеки необходимы для запуска программ пакета. Обратите внимание на то, что динамически связываемые с приложением библиотеки будут автоматически обнаружены и добавлены к RDEPENDS и поэтому нет необходимости их явно описывать. Если библиотека динамически загружается, то она должна быть явно прописана.

Если взять в качестве примера пакет openssh, то он требует zlib и openssl пакеты как для сборки, так и для запуска. Поэтому в рецепте будет прописано:

DEPENDS = "zlib openssl"

Это укажет bitbake на то, что перед сборкой openssh должны быть собраны zlib и openssl, так как openssh требует оба. Обратите внимание, что не описана переменная RDEPENDS, хотя openssh требует оба пакета и для запуска. Зависимости времени выполнения от libz1 (название пакета с zlib библиотекой) и libssl0 (название пакета с ssl библиотекой) автоматически определяются и добавляются кодом автоматизации разрешения зависимостей разделяемых библиотек.