我已经成功地将食谱
openldap
添加到我的基于 yocto 的 Linux 发行版中,按照说明:
IMAGE_INSTALL += "openldap"
之后我创建了一个
path/to/my-layer/recipes-support/openldap/openldap_%.bbappend
文件并在其中放入指令:
INSANE_SKIP_${PN} += "already-stripped"
之前的设置指定质量保证 (QA) 检查要跳过的内容,在这种情况下(参见 Yocto 手册 关于
insane.bbclass
)我们要求跳过:
already-stripped:检查生成的二进制文件在构建系统提取调试符号之前是否尚未被剥离。上游软件项目通常默认为输出二进制文件剥离调试符号。为了使用 -dbg 包在目标上进行调试,必须禁用此剥离。
如果没有前面的指令,
openldap
的编译将失败并出现以下错误:
ERROR: openldap-2.4.50-r0 do_package: QA Issue: File '/usr/bin/ldapcompare' from openldap was already stripped, this will prevent future debugging! [already-stripped]
ERROR: openldap-2.4.50-r0 do_package: QA Issue: File '/usr/bin/ldapdelete' from openldap was already stripped, this will prevent future debugging! [already-stripped]
ERROR: openldap-2.4.50-r0 do_package: QA Issue: File '/usr/bin/ldapexop' from openldap was already stripped, this will prevent future debugging! [already-stripped]
ERROR: openldap-2.4.50-r0 do_package: QA Issue: File '/usr/bin/ldapmodify' from openldap was already stripped, this will prevent future debugging! [already-stripped]
ERROR: openldap-2.4.50-r0 do_package: QA Issue: File '/usr/bin/ldapmodrdn' from openldap was already stripped, this will prevent future debugging! [already-stripped]
ERROR: openldap-2.4.50-r0 do_package: QA Issue: File '/usr/bin/ldappasswd' from openldap was already stripped, this will prevent future debugging! [already-stripped]
ERROR: openldap-2.4.50-r0 do_package: QA Issue: File '/usr/bin/ldapsearch' from openldap was already stripped, this will prevent future debugging! [already-stripped]
ERROR: openldap-2.4.50-r0 do_package: QA Issue: File '/usr/bin/ldapurl' from openldap was already stripped, this will prevent future debugging! [already-stripped]
ERROR: openldap-2.4.50-r0 do_package: QA Issue: File '/usr/bin/ldapwhoami' from openldap was already stripped, this will prevent future debugging! [already-stripped]
ERROR: openldap-2.4.50-r0 do_package: QA Issue: File '/usr/sbin/slapd' from openldap was already stripped, this will prevent future debugging! [already-stripped]
ERROR: openldap-2.4.50-r0 do_package: Fatal QA errors found, failing task.
相反,通过将先前的赋值添加到变量
INSANE_SKIP_${PN}
,QA检查停止失败。
编译过程为实用程序生成二进制文件
ldapsearch
但此二进制文件未安装到映像中。
相反,我确定 openldap
结果安装正确。
我找不到任何方法可以将
ldapsearch
和其他实用程序添加到图像中。
有人可以帮我吗?
我已成功将配方 openldap 添加到我的 Yocto 图像中,通过 指令:
IMAGE_INSTALL += "openldap"
您已将 package openldap 添加到您的映像中。然而,配方定义了多个包:
# The executables go in a separate package. This allows the
# installation of the libraries with no daemon support.
# Each module also has its own package - see above.
PACKAGES += "${PN}-slapd ${PN}-slurpd ${PN}-bin"
# Package contents - shift most standard contents to -bin
FILES:${PN} = "${libdir}/lib*.so.* ${sysconfdir}/openldap/ldap.* ${localstatedir}/${BPN}/data"
FILES:${PN}-slapd = "${sysconfdir}/init.d ${libexecdir}/slapd ${sbindir} ${localstatedir}/run ${localstatedir}/volatile/run \
${sysconfdir}/openldap/slapd.* ${sysconfdir}/openldap/schema \
${sysconfdir}/openldap/DB_CONFIG.example ${systemd_unitdir}/system/*"
FILES:${PN}-slurpd = "${libexecdir}/slurpd ${localstatedir}/openldap-slurp"
FILES:${PN}-bin = "${bindir}"
...
您可能想在图像中添加
openldap-bin
。