返回笔记索引

Notes

Fedora 中使用 deb 软件

本文介绍在 Fedora 中通过 Distrobox 使用 Ubuntu 的 deb 软件。

我的个人电脑使用 Fedora,但日常使用中仍有少数软件仅提供面向 Ubuntu / Debiandeb 包,无法直接安装。

考虑到大多数软件都会提供 rpmAppImageFlatpak 等安装方式,为少数软件迁移到 Ubuntu 并不划算,因此使用 Distrobox 创建一个 Ubuntu 环境,专门用于安装和运行这类软件。

Distrobox

Distrobox 可以基于 PodmanDocker 等容器工具创建其他 Linux 发行版的环境,并与当前系统集成,例如共享用户目录、图形界面和音频等,同时支持直接通过宿主机中的快捷方式运行容器内的 GUI 软件。

创建 Ubuntu 环境

Fedora 已经提供 Podman,可以直接作为 Distrobox 的容器后端。

安装 Distrobox

sudo dnf install distrobox

这里使用 Toolbx 提供的 Ubuntu 24.04 镜像。根据 Distrobox 的兼容性文档Toolbox 镜像更适合桌面环境使用,并且首次初始化通常更快:

distrobox create -n ubuntu24 -i quay.io/toolbx/ubuntu-toolbox:24.04

进入环境:

distrobox enter ubuntu24

成功进入后,终端前通常会出现类似:

📦[user@ubuntu24 ~]$

之后即可按照普通 Ubuntu 的方式使用 apt

安装软件

sudo apt update

# 安装仓库中的软件
sudo apt install <package>

# 安装本地 deb 软件
sudo apt install ./example.deb

部分软件可能默认完整的 Ubuntu Desktop 已经安装了一些依赖。如果启动时报缺少动态库等错误,根据实际错误补充对应依赖即可。

导出 GUI 应用

如果安装的是 GUI 软件,可以先查找该软件包安装的 .desktop 文件:

dpkg -L <package> | grep '\.desktop$'

例如可能得到:

/usr/share/applications/example.desktop

然后在 Distrobox 中将其导出:

distrobox-export --app /usr/share/applications/example.desktop

之后即可直接从 Fedora 的应用菜单启动该软件,无需先手动进入 Distrobox

可以查看当前容器中已经导出的应用:

distrobox-export --list-apps

具体用法可以参考 distrobox-export 文档

更新

可以进入 Ubuntu 后正常更新:

sudo apt update
sudo apt upgrade

也可以直接从 Fedora 宿主执行:

distrobox enter ubuntu24 -- bash -lc 'sudo apt update && sudo apt upgrade'

其他

退出当前环境:

exit

如果需要停止容器:

distrobox stop ubuntu24

日常仅将其作为软件兼容环境使用时,一般不需要特意停止。

Distrobox 更适合普通用户态软件。驱动、内核模块等依赖底层系统的组件并不适合通过这种方式安装。