我接手了一个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 -m 0755 -d,install命令中同时使用了 -m 和 -d 选项,会有什么影响?
此外,为什么没有像我看到的其他大部分目录安装一样有 ${D} 变量?
通常我不会为这样的问题求助于Stack Overflow,但是由于存在这么多不一致性,我不理解,并且难以找到答案。
install(1)
man page。-d
就像mkdir -p
。-m
设置模式(权限)。请注意,带有-d
等选项的install
是非标准的。它在某些操作系统上不可用,例如 AIX 或 Solaris 的install
。 - jwwINSTALL
命令变量。 - jww