Установка группы пакетов Yocto

У меня есть несколько рецептов, я хочу сгруппировать их внутри группы пакетов, чтобы упростить установку этих рецептов в образе.

Я создал следующий файл: sources/meta-test/recipes-lib/packagegroups/packagegroup-lib.bb

DESCRIPTION = "Libraries package group"
LICENCE = "CLOSED"
SUMMARY = "Package group of all libraries recipes"

PACKAGE_ARCH = "${MACHINE_ARCH}"

inherit packagegroup

RDEPENDS_{PN} = " \
    exception \
    logger \
"

А затем в моем build/conf/local.conf я устанавливаю свою группу пакетов: IMAGE_INSTALL_append = " packagegroup-lib"

bitbake -c cleansstate packagegroup-lib
bitbake -c clean fsl-image-machine-test
bitbake packagegroup-lib
bitbake fsl-image-machine-test

Я прошиваю образ, но не могу найти установленные пакеты (группы пакетов) после загрузки образа. В папке tmp я могу найти библиотеку в нужном месте: ./tmp/sysroots-components/cortexa7hf-neon/logger/usr/lib/libLogger.so


person bacara    schedule 22.01.2020    source источник
comment
Честно говоря, выглядит нормально. Единственное, что я вижу, это использование IMAGE_INSTALL в conf/local.conf. Можете ли вы вместо этого попробовать CORE_IMAGE_EXTRA_INSTALL и посмотреть, исправит ли это проблему? Вам в любом случае, скорее всего, нужно как-то добавить этот пакет в рецепт изображения. Вы также можете использовать bbappend для рецептов изображений, поэтому создайте его для fsl-image-machine-test и добавьте туда свой IMAGE_INSTALL (или CORE_IMAGE_EXTRA_INSTALL). Добавляйте как можно меньше вещей в conf/local.conf.   -  person qschulz    schedule 22.01.2020
comment
Подумал, есть ли в пакете под названием logger либа? Иногда пакет будет автоматически переименован, например. liblogger*, если он содержит только разделяемую библиотеку. Проверьте каталог packages-split, чтобы узнать, какие файлы попадают в какие пакеты, посмотрите в tmp/work/cortexa7hf-neon/logger/‹your version›/packages-split/.   -  person Erik Botö    schedule 22.01.2020
comment
@qschulz Я пытаюсь сделать IMAGE_INSTALL внутри рецепта группы пакетов (а позже с помощью CORE_IMAGE_EXTRA_INSTALL). Я заканчиваю с тем же результатом   -  person bacara    schedule 22.01.2020
comment
@ErikBotö библиотека находится в правильном положении в папке packages-split   -  person bacara    schedule 22.01.2020
comment
@bacara, IMAGE_INSTALL нужно добавить в рецепт image (в этом случае fsl-image-machine-test.bb или в bbappend для этого рецепта образа), а не в обычный рецепт (который создает пакеты ). Как следует из названия переменной, она предназначена для установки пакетов в образ, поэтому ее место в рецепте образа. Пожалуйста, взгляните на предложенный @ ErikBotö ответ, я уверен, что он правильно заметил ошибку, допущенную во фрагменте выше.   -  person qschulz    schedule 23.01.2020


Ответы (1)


Есть небольшая опечатка, которую я не заметил, пока не попробовал ваш рецепт packagegroup-lib.bb здесь локально и не заметил, что строка RDEPENDS не работает. Во время синтаксического анализа происходит сбой, но RDEPENDS установлен неправильно.

Там написано RDEPENDS_{PN}, но должно быть RDEPENDS_${PN}.

person Erik Botö    schedule 23.01.2020
comment
Верно ! Спасибо. Меня всегда смущает bitbake, когда возникает такая проблема, и он не говорит мне, что не так. - person bacara; 23.01.2020