
저는 BitBake를 사용하여 Yocto 프로젝트를 컴파일하고 있습니다.
BitBake의 레시피는 chown
명령을 사용하여 일부 디렉터리와 파일의 권한을 변경하려고 시도합니다. 문제는 명령이 실패한다는 것입니다.소유권 변경 작업은 허용되지 않습니다..
BitBake 명령은 sudoer이기도 한 사용자 luca에 의해 실행됩니다. ls -l
문제가 있는 폴더에 표시되는 내용을 입력하면 다음과 같습니다.
-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
예를 들어 수동으로 입력하면 sudo chowwn 777 image
작동하지만 오류를 일으키는 BitBake 스크립트를 변경할 수는 없습니다.
내 권한과 사용자에 어떤 문제가 있나요?
답변1
결국 나는 전체 소스 폴더에 대해 chmod 777을 수행했고 모두 작동하기 시작했습니다. 아마도 스크립트나 실행 파일에 대한 권한이 있을 것입니다. 지원해 주신 모든 분들께 감사드립니다.
답변2
bitbake에서 비슷한 오류가 발생했습니다. 내 경우에는 의사 유틸리티의 실패로 인해 발생했지만 Yocto는 오류와 정지를 명확하게 표시하지 않았습니다. 대신 chmod -R dir
일반 사용자로 할 수 없을 때까지 계속되었습니다 . 'Pseudo' 유틸리티는 sqlite db에서 이를 가로채고 chown
, 호출하고, 추적하는 데 사용됩니다. chmod
RFS 파일 권한을 변경하는 것처럼 작동하지만 실제로는 루트가 필요하지 않습니다. 제 경우에는 실패한 pkg에서 오류를 검색한 경우:
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.
이는 누군가가 이전에 다음을 사용하여 이전 개발 활동에 대한 보안 기능을 설정했기 때문입니다.
setcap cap_net_admin,cap_net_raw+eip /bin/bash or to /usr/bin/python. To fix: setcap -r /bin/bash
찾기 힘든 이 게시물은 나에게 다음과 같은 단서를 제공했습니다.http://lists.openembedded.org/pipermail/openembedded-core/2012-February/056779.html