O que está criando ./var/lib na minha imagem yocto?

O que está criando ./var/lib na minha imagem yocto?

dr.Yocto cria um diretório vazio var/libna minha imagem, mesmo depois de ter sido explicitamente excluído por ROOTFS_POSTPROCESS_COMMAND. Por que e como posso me livrar disso?


Estou tentando criar uma imagem yocto com um conjunto exato de arquivos e diretórios predefinidos, sem os arquivos rootfs usuais. Para começar, estou tentando criar uma imagem completamente vazia.

Para fins de teste, estou usando um clone limpo do yocto jethro com MACHINE ??= "qemux86"in conf/local.conf. Vamos começar com esta receita

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

que vem com o clone yocto. É muito simples:

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

inherit image

Building bitbake test-empty-imageme dá os seguintes arquivos na imagem:

$ 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/

Vamos tentar excluir os arquivos e pastas restantes anexando isto à receita:

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

Isso funciona para etc, mas não para var:

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

Para mais depuração, adiciono instruções de registro à função de limpeza:

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
}

o que resulta no arquivo listing.txt:

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

Portanto, o diretório var/libé definitivamente excluído pelo ROOTFS_POSTPROCESS_COMMAND, mas aparentemente recriado mais tarde. Como posso me livrar deste diretório?

Responder1

Isso é muito chato e no passado tive o mesmo problema. Faça o seguinte em sua receita de imagem:

IMAGE_PREPROCESS_COMMAND += "remove_dirs"

Isso deve ser executado após a parte ROOTFS.

VerEntrada manual do Yocto para IMAGE_PREPROCESS_COMMAND

informação relacionada