Distrobox 是什么?在终端里运行任意 Linux 发行版的工具

Distrobox 是一个在终端里使用任意 Linux 发行版的工具。它通过 podman、docker 或 lilipod 创建容器,但容器会与宿主系统紧密集成:共享用户的 HOME 目录、外部存储、外部 USB 设备、图形应用(X11/Wayland)和音频。如果你需要某个发行版才有的软件包,或者想在不重装系统的前提下切换开发环境,Distrobox 就是为这类场景准备的。

它解决什么问题

Linux 各发行版的软件包版本和可用性差异很大。有时你用的发行版没有某个软件的最新版,有时某个工具只在特定发行版上测试过。传统做法是装虚拟机或双系统,代价是资源占用高、文件共享麻烦、图形界面体验割裂。

Distrobox 的思路不同:容器负责提供目标发行版的软件环境,宿主负责提供硬件、桌面和用户数据。容器里的程序可以直接调用宿主的外设和显示服务,用起来接近原生。

核心机制

Distrobox 本身是一个命令行工具,底层依赖以下容器管理器之一:

  • podman
  • docker
  • lilipod

创建容器时,你指定想要的发行版,Distrobox 会拉取对应镜像并完成集成配置。集成内容包括:

  • 共享宿主用户的 HOME 目录
  • 访问外部存储和 USB 设备
  • 运行图形应用(X11/Wayland)
  • 音频输出

这意味着你在容器里安装的编辑器、浏览器或开发工具,可以像宿主程序一样打开窗口、读写你的文件。

适合谁用

场景 是否适合
需要某发行版独有的软件包 适合
想测试不同发行版环境 适合
希望容器与桌面、外设无缝配合 适合
只需要隔离服务、不需要图形和 HOME 共享 用普通容器更直接
需要完整内核级隔离 虚拟机更合适

常用命令

Distrobox 的命令分为容器外和容器内两组。

容器外:

  • distrobox-create:创建容器
  • distrobox-enter:进入容器
  • distrobox-list:列出容器
  • distrobox-stop:停止容器
  • distrobox-rm:删除容器
  • distrobox-upgrade:升级容器
  • distrobox-assemble:按配置文件批量创建
  • distrobox-ephemeral:创建临时容器
  • distrobox-generate-entry:生成应用入口

容器内:

  • distrobox-export:把容器内的应用或命令导出到宿主
  • distrobox-host-exec:在容器内执行宿主命令
  • distrobox-init:容器初始化

安装与依赖

官方文档列出了几种安装方式:

  • Curl 或 Wget
  • Git
  • 手动安装
  • 自动化安装

依赖方面,需要先有可用的 podman 或 docker。文档还包含“Install Podman without root”一节,说明在无 root 权限时安装 Podman 的路径。

使用前需要知道

  • 官方文档在 https://distrobox.it,GitHub 上的文档对应主分支代码,可能与正式版有差异。
  • 兼容性部分列出了支持的容器管理器、宿主发行版,以及 Steamdeck 上的安装说明。
  • 文档包含安全影响(Security implications)的讨论,涉及容器与宿主共享资源带来的边界问题。
  • 卸载方式在 Uninstallation 一节。

常见问题

容器里的程序能打开窗口吗? 可以。Distrobox 支持 X11/Wayland 图形应用,也支持音频。

能访问 U 盘和移动硬盘吗? 可以,外部存储和 USB 设备对容器可见。

容器和宿主是同一个 HOME 吗? 默认共享用户 HOME 目录,因此文件在两个环境中都能直接访问。

必须用 podman 吗? 不是,docker 和 lilipod 也可以作为后端。

和虚拟机有什么区别? Distrobox 不模拟完整硬件,也不运行独立内核,而是复用宿主内核,因此更轻量,并且与桌面集成更紧密。代价是隔离程度低于虚拟机。

distrobox.it
Use any linux distribution inside your terminal.