Intereting Posts

Что создает ./var/lib в моем изображении yocto?

tl; dr Yocto создает пустой образ var/lib в моем изображении, даже после того, как он был явно удален ROOTFS_POSTPROCESS_COMMAND . Почему, и как я могу избавиться от него?


Я пытаюсь создать изображение yocto с точным предопределенным набором файлов и каталогов без обычных файлов rootfs. Для начала я пытаюсь создать абсолютно пустой образ.

Для целей тестирования я использую чистый клон yocto jethro с MACHINE ??= "qemux86" в conf/local.conf . Начнем с этого рецепта

 meta-selftest/recipes-test/images/test-empty-image.bb 

который поставляется с клоном yocto. Это очень просто:

 SUMMARY = "An empty image." IMAGE_INSTALL = "" IMAGE_LINGUAS = "" PACKAGE_INSTALL = "" inherit image 

Построение bitbake test-empty-image дает мне следующие файлы на картинке:

 $ tar tf tmp/deploy/images/qemux86/test-empty-image-qemux86.tar.bz2 ./ ./etc/ ./etc/version ./etc/default/ ./etc/default/postinst ./etc/ld.so.cache ./etc/rpm/ ./etc/rpm/platform ./etc/rpm/sysinfo/ ./etc/rpm/sysinfo/Dirnames ./etc/timestamp ./var/ ./var/lib/ 

Попробуем удалить оставшиеся файлы и папки, добавив это в рецепт:

 remove_dirs () { rm -rf ${IMAGE_ROOTFS}/etc rm -rf ${IMAGE_ROOTFS}/var } ROOTFS_POSTPROCESS_COMMAND += "remove_dirs ; " 

Это работает для и etc , Но не для var :

 $ tar tf tmp/deploy/images/qemux86/test-empty-image-qemux86.tar.bz2 ./ ./var/ ./var/lib/ 

Для некоторой дополнительной отладки я добавляю оператор регистрации в функцию очистки:

 remove_dirs () { echo "################# Listing before rm -rf:" >> ${IMAGE_ROOTFS}/listing.txt ls ${IMAGE_ROOTFS} >> ${IMAGE_ROOTFS}/listing.txt rm -rf ${IMAGE_ROOTFS}/etc rm -rf ${IMAGE_ROOTFS}/var echo "################# Listing after rm -rf:" >> ${IMAGE_ROOTFS}/listing.txt ls ${IMAGE_ROOTFS} >> ${IMAGE_ROOTFS}/listing.txt } 

в результате чего файл listing.txt :

 ################# Listing before rm -rf: etc listing.txt oe_install var ################# Listing after rm -rf: listing.txt oe_install 

Поэтому каталог var/lib определенно удаляется ROOTFS_POSTPROCESS_COMMAND , но, по-видимому, воссоздан позже. Как я могу избавиться от этого каталога?