Permissão negada no comando de instalação para receitas Yocto

0

Estou tentando me familiarizar com o processo de criação do Yocto e atualmente estou trabalhando com receitas. Eu tenho uma receita muito simples

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
}

foi-me dito que, se a instalação não encontrar o diretório, ele será criado para você, mas, neste caso, não será feito isso! O erro que está me dando é

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)

Não é que não possa construir um diretório lá, a receita recusa a história do arquivo bash em qualquer lugar, a menos que esteja em um diretório específico. Espero que alguém tenha enfrentado esse problema e possa ajudar

    
por CoolDude 20.05.2017 / 19:34

2 respostas

1

Confira o grande, mas abrangente Manual de Referência Yocto e o exemplo simples lá. Ele mostra que um script de instalação típico moverá os arquivos para um subdiretório de ${D} , por exemplo,

install -d ${D}${bindir}

Você deve usar uma tática semelhante, por exemplo, install -d ${D}/test e assim por diante. Esta variável é explicada aqui .

Leia a seção 5.3.13. Instalando para o que é esperado que aconteça durante o estágio de instalação.

    
por 20.05.2017 / 22:01
0

Você não tem permissão para criar arquivos em seu diretório de destino, que provavelmente pertence a root. Talvez você possa definir a variável D para algum lugar em seu diretório pessoal e, em seguida, chamar do_install .

    
por 20.05.2017 / 20:03