You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Yocto Recipe中安装带空格文件名至RootFS的问题求助

解决Yocto中带空格的文件无法安装到RootFS的问题

针对带空格文件安装失败的问题,核心是BitBake语法和shell脚本对空格的解析规则导致的,以下是修正后的bbappend配方及说明:

修正后的完整配方

SRC_URI += " \
    \"file://Wired connection 1.nmconnection\" \
    \"file://Wired connection 2.nmconnection\" \
"

FILES:${PN} += " \
    \"${sysconfdir}/NetworkManager/system-connections/Wired connection 1.nmconnection\" \
    \"${sysconfdir}/NetworkManager/system-connections/Wired connection 2.nmconnection\" \
"

do_install:append() {
    install -d ${D}${sysconfdir}/NetworkManager/system-connections
    install -m 0644 "${WORKDIR}/Wired connection 1.nmconnection" "${D}${sysconfdir}/NetworkManager/system-connections"
    install -m 0644 "${WORKDIR}/Wired connection 2.nmconnection" "${D}${sysconfdir}/NetworkManager/system-connections"
}

关键修改点说明

  • SRC_URI部分:用转义双引号\"...\"包裹每个带空格的文件路径,BitBake会将整个路径识别为单个源条目,不会因空格拆分。
  • FILES变量部分:同样用转义双引号包裹带空格的目标路径,确保BitBake正确识别为单个文件,避免把空格后的内容当作新条目。
  • do_install中的install命令:在shell环境下直接用双引号"..."包裹路径参数,防止shell将空格解析为参数分隔符,导致找不到文件。

简化写法(可选)

如果你的.nmconnection文件都在同一目录下,可使用通配符简化配置,避免逐个处理带空格的文件名:

SRC_URI += "file://*.nmconnection"
FILES:${PN} += "${sysconfdir}/NetworkManager/system-connections/*.nmconnection"

do_install:append() {
    install -d ${D}${sysconfdir}/NetworkManager/system-connections
    install -m 0644 ${WORKDIR}/*.nmconnection "${D}${sysconfdir}/NetworkManager/system-connections"
}

内容的提问来源于stack exchange,提问作者user2695267

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.08.21 08:03:32