
Estoy compilando un proyecto Yocto con BitBake.
Una receta de BitBake intenta cambiar el permiso de algunos directorios y archivos usando chown
un comando. El problema es que el comando falla debido aoperación de cambio de propiedad no permitida.
El comando BitBake lo inicia el usuario luca, que también es sudoers. Si escribo ls -l
lo que veo en la carpeta problemática es:
-rw-r--r-- 1 luca luca 1875 May 13 17:10 arm-thumb-mutex_db5.patch
-rw-r--r-- 1 luca luca 33 May 13 17:10 configure.sstate
drwxr-xr-x 16 luca luca 4096 May 13 17:10 db-6.0.30
-rw-r--r-- 1 luca luca 665 May 13 17:10 fix-parallel-build.patch
drwxr-xr-x 3 luca luca 4096 May 13 19:11 image
drwxr-xr-x 2 luca luca 4096 May 13 19:11 temp
Obviamente si escribo manualmente, por ejemplo, sudo chowwn 777 image
funciona, pero no puedo cambiar el script de BitBake que causa el error.
¿Qué pasa con mis permisos y usuario?
Respuesta1
Al final hice chmod 777 de toda la carpeta de fuentes y todo empezó a funcionar. Probablemente permisos sobre scripts o archivos ejecutivos. Gracias a todos por el apoyo.
Respuesta2
Recibí errores similares en bitbake. En mi caso, esto se debió a una falla de la pseudoutilidad, pero Yocto no mostró claramente los errores y se detuvo. En cambio, continuó hasta que no pudo funcionar chmod -R dir
como un usuario normal. La utilidad 'Pseudo' se utiliza para interceptar chown
llamadas chmod
y rastrearlas en una base de datos sqlite. Actúan como si estuvieran cambiando los permisos de su archivo RFS, pero en realidad no requieren root. En mi caso, si buscó el error en el paquete que falló:
build/tmp/work/aarch64-fsl-linux/gcc-runtime/linaro-4.9-r2015.03/temp> grep pseudo *
log.do_install:ERROR: ld.so: object 'libpseudo.so' from LD_PRELOAD cannot be preloaded (cannot open shared object file): ignored.
log.do_install.17098:ERROR: ld.so: object 'libpseudo.so' from LD_PRELOAD cannot be preloaded (cannot open shared object file): ignored.
Esto se debió a que alguien había configurado previamente capacidades de seguridad para actividades de desarrollo anteriores con:
setcap cap_net_admin,cap_net_raw+eip /bin/bash or to /usr/bin/python. To fix: setcap -r /bin/bash
Esta publicación difícil de encontrar me dio una pista sobre esto:http://lists.openembedded.org/pipermail/openembedded-core/2012-February/056779.html