
Estoy intentando familiarizarme con el proceso de creación de Yocto y actualmente estoy trabajando con recetas. tengo una receta muy sencilla
DESCRIPTION = "Hello world"
S = "${WORKDIR}"
SRC_URI="file://bye.sh"
LICENSE = "CLOSED"
LIC_FILES_CHKSUM = "file://${S}/README;md5=e584df0feead52ed7de9b60172adc0cf "
#${D} is /usr and ${bindir} is bin
do_install() {
install -d /test
install -m 0777 bye.sh /test
}
Me dijeron que si install no encuentra el directorio, lo creará por usted, ¡pero en este caso no lo hace! El error que me esta dando es
Log data follows:
| DEBUG: Executing shell function do_install
| install: cannot create regular file ‘/usr/bin/bye.sh’: Permission denied
| WARNING: /home/builder/project/runqeme_qemux86/build/tmp/work/i586-poky-linux/directory/1.0-r0/temp/run.do_install.22136:1 exit 1 from 'install -m 0777 bye.sh /usr/bin'
| ERROR: Function failed: do_install (log file is located at /home/builder/project/runqeme_qemux86/build/tmp/work/i586-poky-linux/directory/1.0-r0/temp/log.do_install.22136)
No es que no pueda crear un directorio allí, la receta se niega a almacenar el archivo bash en cualquier lugar a menos que esté en un directorio específico.
Respuesta1
Consulte el amplio pero completoManual de referencia de Yoctoy elejemplo sencilloallá. Muestra que un script de instalación típico moverá archivos a un subdirectorio de ${D}
, por ejemplo
install -d ${D}${bindir}
Debes utilizar una táctica similar, por ejemplo install -d ${D}/test
, etc. Esta variable se explicaaquí.
Leer sección5.3.13. Instalaciónpara lo que se espera que suceda durante la etapa de instalación.
Respuesta2
No tiene permiso para crear archivos en su directorio de destino, que probablemente sea propiedad del root. Quizás pueda configurar la D
variable en algún lugar de su directorio personal y luego llamar a do_install
.