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

如何解决OpenBMC构建phosphor-user-manager时文件安装未打包QA错误

问题原因

这是OpenEmbedded/Yocto构建体系的标准QA检查报错:你切换到自有仓库后的phosphor-user-manager代码在do_install阶段生成了8个额外的文件/目录,但原配方(.bb文件)里没有声明这些文件需要被打包到最终的软件包中,因此触发了installed-vs-shipped规则导致构建失败。

解决方案

根据你是否需要用到nslcd证书相关功能,选择对应处理方式即可:

方案1:需要保留这些文件(使用nslcd证书管理能力)

直接在你的phosphor-user-manager_git.bb或者对应的.bbappend追加配置文件中添加如下配置,把独有路径加入打包列表:

FILES:${PN} += " \
    /dbus-1/system.d/phosphor-nslcd-cert-config.conf \
    /usr/share/phosphor-certificate-manager/nslcd \
    /lib/systemd/system/multi-user.target.wants/phosphor-certificate-manager@nslcd.service \
"

注意不要直接把/dbus-1、/usr/share这类父目录加入打包列表,这类父目录一般由基础文件系统或其他公共包提供,仅需添加当前包独有的文件和子目录即可。

方案2:不需要这些nslcd相关文件

两种处理方式任选其一:

  • 去自有代码仓库的meson.build/CMakeLists.txt等构建配置里,删除nslcd证书相关的安装逻辑,构建时就不会生成这些冗余文件
  • 不想修改上游代码的话,直接在配方的do_install函数末尾追加删除逻辑即可,示例如下:
do_install:append() {
    rm -rf ${D}/dbus-1/system.d/phosphor-nslcd-cert-config.conf
    rm -rf ${D}/usr/share/phosphor-certificate-manager
    rm -rf ${D}/lib/systemd/system/multi-user.target.wants/phosphor-certificate-manager@nslcd.service
}
修改后验证

修改完配方后执行如下命令重新构建即可:

bitbake phosphor-user-manager -c cleansstate && bitbake phosphor-user-manager

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.10.10 17:03:03