You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

在meta-virtualization的Rocko分支构建Docker时无法定位Docker包

解决Yocto Rocko分支构建Docker时apt-get找不到docker包的问题

我之前在Rocko分支折腾Docker构建的时候也踩过一模一样的坑,这个错误本质上是两个核心问题:一是Yocto Rocko的软件源里根本没有叫docker的包,二是直接在recipe里调用apt-get不是Yocto推荐的包管理方式。下面给你几个可行的解决步骤:

1. 确保添加了meta-virtualization层

Docker相关的配方在Yocto里属于meta-virtualization层,Rocko分支默认不会包含这个层。你需要先把它添加到你的构建配置中:

  • 编辑build/conf/bblayers.conf,在BBLAYERS列表里加上meta-virtualization的路径,比如:
BBLAYERS += "${TOPDIR}/../meta-virtualization"

(注意路径要根据你本地的layer存放位置调整)

2. 替换正确的包名

Rocko时期Docker的包名不是docker,而是docker-io(Docker CE是后来才统一的命名)。你需要把命令里的docker替换成docker-io,修改后的命令应该是:

/media/storage/updater/rocko_poky/test_docker/poky/build/tmp/work/qemux86-poky-linux/core-image-minimal/1.0-r0/recipe-sysroot-native/usr/bin/apt-get install --force-yes --allow-unauthenticated docker-io packagegroup-core-boot run-postinsts

3. 改用Yocto原生的包安装方式(更推荐)

直接在recipe里调用apt-get容易出现环境不一致的问题,Yocto更推荐通过IMAGE_INSTALL来管理要安装的包:

  • 编辑build/conf/local.conf,添加以下内容:
IMAGE_INSTALL_append = " docker-io packagegroup-core-boot run-postinsts"

然后重新执行构建命令,Yocto会自动处理包的依赖和安装流程。

4. 处理老分支的源归档问题

Rocko是2018年的分支,官方支持早已结束,很多软件源已经归档。如果还是找不到包,你可能需要调整native环境的apt源,把普通的源地址换成归档地址:

  • 比如把deb.debian.org替换成archive.debian.org,或者对应Ubuntu版本的归档源(Rocko对应的Ubuntu版本大概是18.04,可根据实际情况确认)。

内容的提问来源于stack exchange,提问作者Mika

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.05.21 04:26:54