【发布时间】:2019-10-15 23:08:36
【问题描述】:
我已经接管了一个 Yocto 项目,在一个 .bb 配方文件中,我看到以下几行来在图像中安装新目录:
do_install() {
install -m 0755 -d ${DEPLOY_DIR_IMAGE}/app
install -m 0755 -d ${DEPLOY_DIR_IMAGE}/app/apiary
install -m 0755 -d ${DEPLOY_DIR_IMAGE}/app/lib
install -m 0755 -d ${DEPLOY_DIR_IMAGE}/app/config
install -m 0755 -d ${DEPLOY_DIR_IMAGE}/app/scripts
install -m 0755 -d ${DEPLOY_DIR_IMAGE}/app/keys
这可行,但我很困惑。根据我对 Yocto 和 do_install 的阅读,我认为 -m 选项仅用于安装文件而不是目录。
使用 install 命令执行 install -m 0755 -d 和 -m 和 -d 选项有什么影响?
另外,为什么在我看到的大多数其他目录安装中没有 ${D} 变量? 对于这样的问题,我通常不会求助于 Stack Overflow,但是有很多我不理解的不一致之处,并且很难找到答案。
【问题讨论】:
-
install(1)man page。-d就像mkdir -p。-m设置模式(权限)。请注意,带有-d之类的选项的install是非标准的。它在某些操作系统上不可用,例如 AIX 或 Solarisinstall。 -
另一个感兴趣的标准可能是 GNU Coding Standard 和 Makefile 的
INSTALLcommand variable。 -
@jww 谢谢。如果没有 ${D} 变量,这如何工作你知道吗?我猜这是 Yocto 特有的 tho
标签: linux makefile yocto bitbake rootfs