yocto / bitbake构建尝试将文件chown到root并失败

时间:2016-03-04 15:42:41

标签: linux yocto bitbake openembedded

我正在尝试使用yocto为zedboard构建图像。当我尝试将一堆文件chown到root时,我的第一次构建失败了。它作为其中一个元图层中的do_install命令的一部分而失败。该命令执行了这个chown行:

chown -R root:root ${D}

我将bitbake作为普通的非root用户运行。难道我不能将它编译为非root用户吗?

只是为了测试我创建了一个新文件,并试图以root用户名表示root:它以完全相同的方式失败。

我在这里缺少什么?

更新:看起来这与use伪有关。我尝试在没有任何附加层(没有xilinx,openembedded等)的情况下构建poky并且它仍然以相同的错误失败。我尝试了同样错误的jethro和fido版本。

更新2:在meta / conf / bitbake.conf中显然禁用了伪。我不知道为什么或如何知道这一点:

# Use pseudo as the fakeroot implementation
PSEUDO_LOCALSTATEDIR ?= "${WORKDIR}/pseudo/"
PSEUDO_PASSWD ?= "${STAGING_DIR_TARGET}:${STAGING_DIR_NATIVE}"
export PSEUDO_DISABLED = "1"
#export PSEUDO_PREFIX = "${STAGING_DIR_NATIVE}${prefix_native}"
#export PSEUDO_BINDIR = "${STAGING_DIR_NATIVE}${bindir_native}"
#export PSEUDO_LIBDIR = "${STAGING_DIR_NATIVE}$PSEUDOBINDIR/../lib/pseudo/lib
FAKEROOTBASEENV = "PSEUDO_BINDIR=${STAGING_BINDIR_NATIVE} PSEUDO_LIBDIR=${STAGING_BINDIR_NATIVE}/../lib/pseudo/lib PSEUDO_PREFIX=${STAGING_BINDIR_NATIVE}/../../ PSEUDO_DISABLED=1"
FAKEROOTCMD = "${STAGING_BINDIR_NATIVE}/pseudo"
FAKEROOTENV = "PSEUDO_PREFIX=${STAGING_DIR_NATIVE}${prefix_native} PSEUDO_LOCALSTATEDIR=${PSEUDO_LOCALSTATEDIR} PSEUDO_PASSWD=${PSEUDO_PASSWD} PSEUDO_NOSYMLINKEXP=1 PSEUDO_DISABLED=0"
FAKEROOTNOENV = "PSEUDO_UNLOAD=1"
FAKEROOTDIRS = "${PSEUDO_LOCALSTATEDIR}"
PREFERRED_PROVIDER_virtual/fakeroot-native ?= "pseudo-native"

1 个答案:

答案 0 :(得分:1)

什么配方在哪一层?目标包的do_install在伪(伪根实用程序)下运行,因此它可以作为非root用户显示为root。