Yocto 레시피에 대한 설치 명령에서 권한이 거부되었습니다.

Yocto 레시피에 대한 설치 명령에서 권한이 거부되었습니다.

저는 Yocto 빌드 프로세스에 익숙해지려고 노력 중이며 현재 레시피 작업을 하고 있습니다. 아주 간단한 레시피가 있어요

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
}

설치 프로그램이 디렉토리를 찾을 수 없으면 디렉토리를 생성할 것이라고 들었지만 이 경우에는 그렇지 않습니다! 그것이 나에게주는 오류는

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)

그렇다고 거기에 디렉토리를 만들 수 없다는 말은 아닙니다. 레시피는 특정 디렉토리에 있지 않는 한 bash 파일을 어디에도 알려주지 않습니다.

답변1

크고 포괄적으로 보기Yocto 참조 매뉴얼그리고간단한 예거기. 이는 일반적인 설치 스크립트가 파일을 이동하는 하위 디렉터리를 보여줍니다 ${D}.

install -d ${D}${bindir}

install -d ${D}/test등 의 유사한 전략을 사용해야 합니다 . 이 변수에는 설명이 있습니다.여기.

독서 섹션5.3.13.설치하기설치 단계에서 기대할 수 있는 사항

답변2

루트가 소유할 수 있는 대상 디렉터리에 파일을 만들 수 있는 권한이 없습니다. 어쩌면 D홈 디렉토리 어딘가에 해당 변수를 설정한 다음 do_install.

관련 정보