技术知识库
Ubuntu 26.04 中 qemu-user-static 是虚拟包
Ubuntu 26.04 中 qemu-user-static 是虚拟包
摘要
在 Ubuntu 26.04 中,qemu-user-static 不再是应直接选择的具体软件包,而是由 qemu-user-binfmt 和 HWE 变体提供的虚拟包。安装命令同时写入 qemu-user-static qemu-user-binfmt 会产生提供者选择错误;显式安装 qemu-user-binfmt 即可,它会依赖实际提供模拟器二进制的 qemu-user。
现象
Package qemu-user-static is a virtual package provided by:
qemu-user-binfmt-hwe ...
qemu-user-binfmt ...
You should explicitly select one to install.
有问题的命令片段:
sudo apt install qemu-user-static qemu-user-binfmt
根因
本机 APT 元数据显示:
qemu-user-binfmt
Provides: qemu-user-static
Depends: qemu-user
Breaks: qemu-user-static
qemu-user-binfmt 负责向 binfmt_misc 注册各目标架构;真正的 qemu-aarch64、qemu-riscv64 等用户态模拟器由其依赖 qemu-user 提供。虚拟包名和具体提供者不应同时出现在安装列表中。
修复
sudo apt install \
debootstrap debian-archive-keyring \
qemu-user-binfmt \
e2fsprogs
如果希望使用 HWE 变体,应明确选择 qemu-user-binfmt-hwe,但不要同时安装两个相互替代的提供者。本实验使用已经验证的普通 qemu-user-binfmt。
验证
qemu-aarch64 --version
qemu-riscv64 --version
cat /proc/sys/fs/binfmt_misc/qemu-aarch64
完成标准:模拟器命令存在,binfmt 条目显示 enabled,解释器指向 /usr/bin/qemu-aarch64。