如何从 Yocto 图像中删除 opkg

How to remove opkg from a Yocto image

使用 Poky(v.13.0 - Yocto 1.8),我正在尝试构建 core-image-minimal 但不包括 opkg 包。

在生成的 rootfs 中,我还有一个 /usr/lib/opkg/ 填充的文件夹。

我尝试在 build/conf/local.conf

中使用以下内容
DISTRO_FEATURES_remove += " package-management"
IMAGE_FEATURES_remove += " package-management"
EXTRA_IMAGE_FEATURES_remove += " package-management opkg"
IMAGE_INSTALL_remove += " package-management opkg"

POKY_DEFAULT_EXTRA_RRECOMMENDS = ""

我看到 meta-yocto/conf/distro/poky-tiny.conf 中有以下内容,我尝试添加(仍然在我的 local.conf 中但没有成功)

PACKAGECONFIG_pn-opkg-utils = ""

嗯,如果你确保 IMAGE_FEATURES 不包含 package-management,那应该就足够了。 (除非您手动安装,例如 opkg)。

你看过/usr/lib/opkg了吗?在我的图像中,该目录仅包含 alternatives,它又包含有关已安装应用程序的替代版本的信息。参见例如 update-alternatives.

/usr/lib/opkg下还有其他文件或目录吗?

==============更新============== 这些文件并不是真正需要的,除非你want/need到运行update-alternatives。如果您进行基于包的更新,这也可能是 运行。但是,在只读 rootfs 上,不需要这些。

如果你想删除 /usr/lib/opkg,可以使用类似的东西:

remove_alternative_files () {
    rm -rf ${IMAGE_ROOTFS}/usr/lib/opkg
}

ROOTFS_POSTPROCESS_COMMAND += "remove_alternative_files;"

这可以直接添加到您的食谱中,或者如果您有自定义图像-class。