从 Yocto 生成的图像中完全删除 busybox
Removing busybox completely from a Yocto generated image
我正在尝试构建一个没有 busybox 且没有任何 busybox 的 yocto 图像
已部署小程序。
我试过以这种方式配置我的 distro.conf 文件:
DISTRO_FEATURES_remove = " busybox"
VIRTUAL-RUNTIME_base-utils = ""
PREFERRED_PROVIDER_virtual/base-utils = ""
尽管如此,busybox 二进制文件和两个相关的小程序(syslog 和 udhcpc)是
安装在生成的图像中:
$ rpm -qa | grep busybox
busybox-syslog-1.24.1-r0.corei7_64
busybox-1.24.1-r0.corei7_64
busybox-udhcpc-1.24.1-r0.corei7_64
我已尝试禁用附加到我的 distro.conf 文件的系统日志小程序:
VIRTUAL-RUNTIME_syslog ?= ""
但是 syslogd 小程序仍然安装:
# ls -l /sbin/syslogd
lrwxrwxrwx 1 root root 19 Feb 15 14:03 /sbin/syslogd -> /bin/busybox.nosuid
有什么方法可以从生成的图像中完全删除 busybox 吗?
你需要分开packagegroup-core-boot:
- 复制一份;
- 从中删除 busybox;
- 让你的图片继承它而不是原来的。
我终于找到了问题的正确答案。完全禁用 busybox 的技巧是在 distro.conf 文件中定义这些变量:
VIRTUAL-RUNTIME_base-utils = ""
VIRTUAL-RUNTIME_login_manager = "shadow"
最后一个变量 (login_manager) 仅当您在自定义映像中安装 "packagegroup-core-boot" 时才需要,例如我的情况。
那么,这个问题就解决了。非常感谢您的支持! :-)
我正在尝试构建一个没有 busybox 且没有任何 busybox 的 yocto 图像 已部署小程序。
我试过以这种方式配置我的 distro.conf 文件:
DISTRO_FEATURES_remove = " busybox"
VIRTUAL-RUNTIME_base-utils = ""
PREFERRED_PROVIDER_virtual/base-utils = ""
尽管如此,busybox 二进制文件和两个相关的小程序(syslog 和 udhcpc)是 安装在生成的图像中:
$ rpm -qa | grep busybox
busybox-syslog-1.24.1-r0.corei7_64
busybox-1.24.1-r0.corei7_64
busybox-udhcpc-1.24.1-r0.corei7_64
我已尝试禁用附加到我的 distro.conf 文件的系统日志小程序:
VIRTUAL-RUNTIME_syslog ?= ""
但是 syslogd 小程序仍然安装:
# ls -l /sbin/syslogd
lrwxrwxrwx 1 root root 19 Feb 15 14:03 /sbin/syslogd -> /bin/busybox.nosuid
有什么方法可以从生成的图像中完全删除 busybox 吗?
你需要分开packagegroup-core-boot:
- 复制一份;
- 从中删除 busybox;
- 让你的图片继承它而不是原来的。
我终于找到了问题的正确答案。完全禁用 busybox 的技巧是在 distro.conf 文件中定义这些变量:
VIRTUAL-RUNTIME_base-utils = ""
VIRTUAL-RUNTIME_login_manager = "shadow"
最后一个变量 (login_manager) 仅当您在自定义映像中安装 "packagegroup-core-boot" 时才需要,例如我的情况。
那么,这个问题就解决了。非常感谢您的支持! :-)