代码之家  ›  专栏  ›  技术社区  ›  aicastell

从Yocto生成的映像中完全删除busybox

  •  1
  • aicastell  · 技术社区  · 8 年前

    我正在尝试建立一个没有busybox和任何busybox的yocto形象 已部署小程序。

    我尝试过配置我的发行版。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
    

    我已尝试禁用附加到发行版的syslog applet。conf文件:

    VIRTUAL-RUNTIME_syslog ?= ""
    

    但仍安装了syslogd applet:

    # ls -l /sbin/syslogd
    lrwxrwxrwx 1 root root 19 Feb 15 14:03 /sbin/syslogd -> /bin/busybox.nosuid
    

    是否有某种方法可以从生成的映像中完全删除busybox?

    2 回复  |  直到 8 年前
        1
  •  1
  •   Oleksandr Kravchuk    8 年前

    您需要拆开packagegroup core引导:

    1. 复印一份;
    2. 从其中移除busybox;
    3. 使您的图像继承它而不是原始图像。
        2
  •  0
  •   aicastell    8 年前

    最后我找到了我问题的正确答案。完全禁用busybox的诀窍是在发行版中定义这些变量。conf文件:

    VIRTUAL-RUNTIME_base-utils = ""
    VIRTUAL-RUNTIME_login_manager = "shadow"
    

    只有在自定义映像中安装“packagegroup core boot”时,才需要最后一个变量(login\u manager),例如在我的示例中。

    所以,这个问题就解决了。非常感谢您的支持!:-)

    推荐文章