Как я могу определить, что вызывает сборку нежелательного пакета в Yocto? - PullRequest
1 голос
/ 06 августа 2020

Я пытаюсь создать образ консоли для RPi, используя рецепт core-image-base, но где-то в моей конфигурации я, кажется, включил что-то, что увеличивает количество созданных рецептов примерно на 1000, включая много вещей, которые не кажется, что они принадлежат образу консоли (libx11, gnome-desktop-testing, et c.)

Я пытаюсь выяснить, почему эти рецепты включены в мою сборку. До сих пор мой метод заключался в выполнении следующих команд:

# Generate a massive dot file with all the dependencies in it
bitbake -g core-image-base

# grep through that file to find out what is bringing in
# gnome-desktop-testing.
cat task-depends.dot | grep -i gnome-desktop-testing | grep -vi do_package_write_rpm

Я удалил do_package_write_rpm из сопоставления, поскольку все, кажется, соответствует ему. Остается следующее:

"core-image-base.do_build" -> "gnome-desktop-testing.do_build"
"core-image-base.do_rootfs" -> "gnome-desktop-testing.do_package_qa"
"core-image-base.do_rootfs" -> "gnome-desktop-testing.do_packagedata"
"core-image-base.do_rootfs" -> "gnome-desktop-testing.do_populate_lic"
"glib-2.0.do_package_qa" -> "gnome-desktop-testing.do_packagedata"
(followed by many dependencies between the tasks of the gnome-desktop-testing recipe)

Итак, если моя интерпретация верна, кажется, что core-image-base напрямую зависит от gnome-desktop-testing. Это кажется необычным, поскольку core-image-base должен быть изображением только для консоли.

Я попытался добавить PACKAGE_EXCLUDE = "gnome-desktop-testing" в свой local.conf, надеясь, что он вернет некоторую дополнительную информацию, но сборка, похоже, продолжается независимо от настройки этой переменной: /

Как я могу понять, почему gnome-desktop-testing создается Yocto? В идеале я хотел бы иметь решение, не использующее тостер.

1 Ответ

0 голосов
/ 06 августа 2020

Одно из грубых решений этой проблемы - просто удалить рецепт, который вам не нужен, и перезапустить bitbake. Это дает вам полезное сообщение, например:

ERROR: Required build target 'core-image-base' has no buildable providers.
Missing or unbuildable dependency chain was:
['core-image-base', 'packagegroup-base-extended', 'ofono', 'glib-2.0', 'gnome-desktop-testing']

Если вы ввели эти слои с помощью git, изменения можно быстро отменить с помощью git checkout path/to/deleted/recipe

...