BitBake 不允许更改所有权

BitBake 不允许更改所有权

我正在使用 BitBake 编译 Yocto 项目。

BitBake 的一个配方尝试使用命令更改某些目录和文件的权限chown。问题是该命令由于以下原因而失败:不允许更改所有权操作

BitBake 命令由用户 luca 启动,他也是一个 sudoers。如果我输入,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”用于拦截chownchmod调用并在 sqlite db 中跟踪它们。它们的行为就像它们正在更改您的 RFS 文件权限,但实际上并不需要 root。在我的情况下,如果您在失败的 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

相关内容