问题
I'm trying to build a yocto image without busybox and without any busybox applet deployed.
I have tried that configuring my distro.conf file in this way:
DISTRO_FEATURES_remove = " busybox"
VIRTUAL-RUNTIME_base-utils = ""
PREFERRED_PROVIDER_virtual/base-utils = ""
Nonetheless, busybox binary and two related applets (syslog and udhcpc) are installed in the generated image:
$ 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
I have tried disabling syslog applet appending to my distro.conf file:
VIRTUAL-RUNTIME_syslog ?= ""
But syslogd applet is still installed:
# ls -l /sbin/syslogd
lrwxrwxrwx 1 root root 19 Feb 15 14:03 /sbin/syslogd -> /bin/busybox.nosuid
Is there some way to remove busybox completely from the generated image?
回答1:
You need to break apart packagegroup-core-boot:
- make a copy of it;
- remove busybox from it;
- make your image inherit it instead of the original.
回答2:
Finally I found the right answer to my question. The trick to disable busybox completely is defining these variables in the distro.conf file:
VIRTUAL-RUNTIME_base-utils = ""
VIRTUAL-RUNTIME_login_manager = "shadow"
Last variable (login_manager) is only needed if you install "packagegroup-core-boot" in your custom image, such as in my case.
So, this question is solved. Thank you so much for all your support! :-)
来源:https://stackoverflow.com/questions/48830472/removing-busybox-completely-from-a-yocto-generated-image