想试 Linux 软件,又怕弄乱主系统?我用 Xubuntu 做了一台软件实验机
平时折腾 Linux,经常会遇到这样的情况:
看到一个没用过的软件,觉得挺有意思,想装上看看。
但 Linux 软件的安装方式五花八门:
APT / DEB PPA / 第三方软件源 Flatpak Snap AppImage Shell 安装脚本 tar.gz 二进制包 源码编译 ……装当然很容易,真正让我犹豫的是:
这个软件到底会往系统里装什么?
会不会拉进来一堆依赖?
不喜欢以后能不能卸干净?
会不会修改/etc?
会不会在~/.config、~/.local里留下一堆东西?
第三方安装脚本到底改了什么?
尤其是有些源码安装或者安装脚本,并不存在一个简单的:
sudo apt purge xxx就能让系统恢复原样。
于是我开始想:
能不能像 Windows Sandbox 一样,给 Linux 准备一台专门用来“试软件”的机器?
最后,我用 VirtualBox 实际测试了 Ubuntu、Kubuntu、Xubuntu、Lubuntu、Linux Mint,又顺手加入 Ubuntu Server 作为无 GUI 基线。
最终我的选择是:
VirtualBox + Xubuntu 26.04 Minimal + Snapshot
这次不是单纯凭“Xfce 比较轻”这样的印象做决定,而是把内存、磁盘占用和 VirtualBox 中的实际 GUI 流畅度都测了一遍。
结果还挺有意思。
一、为什么需要一台 Linux 软件实验机?
最简单的办法当然是在主系统上直接安装。
比如:
sudo apt install xxx或者:
sudo apt install ./example.deb flatpak install ... sudo snap install ...AppImage 更简单:
chmod +x example.AppImage ./example.AppImage有的软件则是:
curl ... | sh甚至:
git clone ... cmake ... make sudo make install不同安装方式,卸载方式也完全不同。
APT 管理的软件通常比较容易:
sudo apt purge xxx sudo apt autoremove但即使软件包本身删除了,GUI 程序自己的配置往往还会留在:
~/.config ~/.local/share ~/.cache ~/.var所以:
“软件卸载了”和“系统恢复到安装前”并不是一回事。
偶尔安装几个软件当然无所谓。
但如果经常:
发现软件 ↓ 装上看看 ↓ 玩半小时 ↓ 觉得不合适 ↓ 删除时间长了,主系统还是容易越来越杂。
二、Timeshift 可以回滚,但还不够像 Sandbox
另一个办法是我本来就在使用的 Timeshift。
流程看起来很适合测试软件:
系统状态 A ↓ 创建 Timeshift 快照 ↓ 安装软件 ↓ 测试 ↓ 恢复快照但实际作为“软件 Sandbox”使用,还是有两个问题。
第一,每次突然想试一个软件之前,都得先创建快照。
第二,也是更重要的一点:
Timeshift 更偏向系统恢复,而不是把整台机器连同用户环境一起恢复。
GUI 软件偏偏很喜欢把配置写进:
~/.config ~/.local ~/.cache于是可能出现:
系统软件包 恢复了 /etc 恢复了 /usr 恢复了 但用户配置 可能还在这对于系统恢复是合理的,但对于一次性软件实验环境就不够彻底。
三、Container 呢?
Linux 一提隔离,很容易想到:
Docker Podman LXC如果只是测试 CLI 软件,我觉得 Container 非常合适。
例如:
docker run -it ubuntu:26.04 bash进去以后随便折腾,玩完直接删容器。
但是 GUI 软件就麻烦多了。
虽然 Container 当然也能跑 GUI,但很快就会遇到:
DISPLAY X11 Wayland Socket D-Bus PipeWire Audio GPU 权限如果我的目标只是:
“这个 GUI 软件到底好不好用?”
结果却开始折腾显示协议和 Socket,就有点本末倒置了。
所以我现在更倾向于:
CLI 软件 ↓ Container GUI 软件 ↓ Virtual Machine四、对于 GUI 软件,完整 VM 反而最简单
VirtualBox 里的 Guest 本身就是一台完整 Linux 电脑:
Ubuntu Host │ ▼ VirtualBox │ ▼ Linux Desktop VM │ ├── APT / DEB ├── PPA ├── Flatpak ├── Snap ├── AppImage ├── GTK ├── Qt ├── 安装脚本 └── Source Build里面想怎么装就怎么装。
即使:
sudo make install也没关系。
最坏的结果不过是:
VM 被我玩坏了。
恢复 Snapshot 就结束了。
主系统一点没动。
五、问题变成了:到底用哪个 Linux Desktop 做实验机?
最自然的选择当然是 Ubuntu Desktop。
我的 Host 本身就是 Ubuntu,Guest 也使用 Ubuntu,兼容性最直接。
但真正放进 VirtualBox 后,我发现:
Ubuntu GNOME 虽然功能完整,但作为一台随手启动的软件实验机,体感并不是最理想。
于是我干脆装了一圈:
Ubuntu 26.04 Desktop
Kubuntu 26.04
Xubuntu 26.04
Lubuntu 26.04
Linux Mint 22.3 Cinnamon
Ubuntu 26.04 Server
然后统一测试。
六、测试方法
为了尽量减少变量,我给所有 VM 都统一分配:
Memory:4096 MBCPU、VirtualBox 显示设置等也尽量保持一致。
每个桌面系统安装完成后:
启动 VM ↓ 登录桌面 ↓ 等待约 1~2 分钟 ↓ 不开其他应用 ↓ 查看内存和磁盘占用内存使用:
free -h磁盘使用:
df -h /这不是一个严谨的桌面 Benchmark。
我的目的只是回答一个实际问题:
如果我要长期留一台 GUI 软件测试 VM,哪个系统启动以后更轻、更顺手?
七、安装方式也尽量选择“小安装”
这里还有一个现实问题:
不同 Ubuntu Flavor 的安装器,提供的安装档位并不完全一样。
我的原则很简单:
既然目标是软件实验机,就尽可能选择发行版安装器本身提供的较小安装方式。
实际选择如下:
| 系统 | 安装器提供的选择 | 本次选择 |
|---|---|---|
| Ubuntu 26.04 Desktop | Default / Extended | Default |
| Kubuntu 26.04 Desktop | Full / Normal / Minimal | Minimal |
| Xubuntu 26.04 Desktop | Desktop / Minimal | 两种都测 |
| Lubuntu 26.04 Desktop | Full / Normal / Minimal | Minimal |
| Linux Mint 22.3 Cinnamon | 无安装档位选择 | 默认 |
| Ubuntu 26.04 Server | Server | 作为无 GUI 基线 |
这里并不是为了做一个完全控制变量的“桌面环境性能评测”。
而是模拟我的真实选择:
如果我要装一台软件测试机,我自然就会选择这个发行版提供的较小安装方案。
八、最终实测结果
测试结果如下:
| OS | 安装方式 | Memory Total | Memory Used | Memory Available | Disk Used |
|---|---|---|---|---|---|
| Ubuntu 26.04 Desktop | Default | 3.3G | 1.1G | 2.2G | 11G |
| Kubuntu 26.04 Desktop | Minimal | 3.8G | 1.0G | 2.8G | 6.7G |
| Xubuntu 26.04 Desktop | Desktop | 3.8G | 0.9G | 2.9G | 13G |
| Xubuntu 26.04 Desktop | Minimal | 3.8G | 0.7G | 3.1G | 8.3G |
| Lubuntu 26.04 Desktop | Minimal | 3.8G | 0.7G | 3.1G | 5.5G |
| Linux Mint 22.3 Cinnamon | 默认 | 3.8G | 1.1G | 2.8G | 12G |
| Ubuntu 26.04 Server | Server | 3.3G | 0.4G | 2.9G | 7G |
从数字上看,几个结论已经很明显:
Ubuntu GNOME ≈ 1.1G Mint Cinnamon ≈ 1.1G KDE Plasma ≈ 1.0G Xfce Desktop ≈ 0.9G Xfce Minimal ≈ 0.7G LXQt Minimal ≈ 0.7G Ubuntu Server ≈ 0.4G现在的 KDE Plasma 其实已经没有很多人印象中那么“重”。
而 Xfce 和 LXQt 仍然保持着明显的轻量优势。
九、不过这里出现了一个奇怪的问题:明明都分配 4096MB,为什么 Ubuntu 只有 3.3G?
测试的时候我发现一个很奇怪的现象。
所有 VirtualBox VM 明明统一设置:
Memory:4096 MB但:
Ubuntu Desktop free -h Total ≈ 3.3G Ubuntu Server free -h Total ≈ 3.3G 其他发行版 free -h Total ≈ 3.8G最开始我还怀疑是不是换算方式不同。
后来查了一下,原因找到了:
crashkernel。
在 Ubuntu 26.04 Desktop 里执行:
cat /proc/cmdline可以看到:
crashkernel=2G-4G:320M,4G-32G:512M,32G-64G:1024M, 64G-128G:2048M,128G-:4096M再看:
sudo dmesg | grep -i crashkernel明确显示:
crashkernel reserved: 0x00000000bf000000 - 0x00000000df000000 (512 MB)系统里也确实安装了:
dpkg -l | grep -E 'kdump-tools|kexec-tools'结果:
kdump-tools kexec-tools最后:
grep MemTotal /proc/meminfo显示:
MemTotal: 3480364 kB原因就很清楚了。
VirtualBox 确实给了:
4096 MB但 Ubuntu 启动时又为 Kernel Crash Dump 预留了:
512 MB于是 Linux 正常内核能够使用的物理内存进一步减少,最终free -h看到的大约就是:
3.3G这也提醒我:
free -h的 Total 并不一定等于 VirtualBox 设置里填写的 RAM。
它反映的是内核实际能够使用的内存。
因此表里的Available也不能简单横向比较:
Ubuntu 2.2G Mint 2.8G并不能直接说明 Mint 比 Ubuntu 少用了 600MB。
因为 Ubuntu 一开始就少了约 512MB 可用物理内存。
真正更值得看的还是:
Memory Used以及实际桌面体验。
十、Ubuntu 26.04:内存其实没有夸张,但 VirtualBox 中明显顿挫
Ubuntu 26.04 Desktop 使用 GNOME。
本次选择的是较小的:
Default实测:
Memory Used ≈ 1.1G Disk Used ≈ 11G单看 RAM,其实并没有比 KDE、Cinnamon 高多少。
这次测试最让我在意的反而不是内存,而是:
GNOME 在 VirtualBox 里的实际 GUI 流畅度。
窗口、动画、Overview、工作区切换等操作,能明显感觉到一些顿挫。
我的实体 Ubuntu 上 GNOME 并没有这种明显问题,所以这里更可能是:
GNOME Shell + Mutter + 较多实时动画 / 合成 ↓ VirtualBox Virtual GPU产生的组合效果。
而我这台 VM 本来就是要:
测试 GUI 软件。
如果桌面本身就一卡一卡的,会直接影响我判断:
到底是被测软件卡,还是虚拟桌面本身卡?
这对 GUI 测试其实是一个很重要的问题。
十一、Kubuntu 26.04:KDE 已经很轻,而且明显比 GNOME 顺
Kubuntu 使用 KDE Plasma。
安装时我选择:
Minimal结果:
Memory Used ≈ 1.0G Disk Used ≈ 6.7G只看内存:
GNOME 1.1G KDE 1.0G差距非常小。
这再次说明:
今天的 KDE Plasma 已经不能简单地贴上“重量级桌面”的标签了。
实际在 VirtualBox 里的体验也让我比较意外:
KDE 明显比 GNOME 顺畅。
菜单、窗口切换和普通桌面操作都舒服不少。
但是作为“通用软件实验基线”,Kubuntu 有另一个问题:
Qt KIO KDE Frameworks Plasma本身已经存在很多 KDE 组件。
例如我要研究:
安装 Kate 或 Dolphin 到底会额外拉进多少 KDE 依赖?
那么在 Kubuntu 里反而不容易观察出来。
所以:
Kubuntu 是很好的桌面系统,但不一定是最中性的通用实验基线。
十二、Linux Mint 22.3 Cinnamon:漂亮、成熟,但不是我的目标基线
Linux Mint Cinnamon 这次表现也不错:
Memory Used ≈ 1.1G Disk Used ≈ 12G它没有安装档位可以选择,所以直接使用默认安装。
实际桌面依然是我认为非常适合 Windows 用户的一套 Linux UI:
开始菜单 任务栏 系统托盘 Nemo 传统窗口逻辑整个系统非常完整、精致。
但我的实验机目标并不是:
找一套最好用的 Linux Desktop。
而是:
找一个尽量简单的 Ubuntu 系 GUI 软件测试环境。
Mint 自己还有:
Update Manager Software Manager Mint Tools Mint 默认配置所以对于我的用途,它稍微多了一层 Mint 自己的东西。
十三、Xubuntu 26.04 Desktop:已经很轻
Xubuntu 使用 XFCE。
我这次特意把两个安装版本都测了一遍。
首先是:
Desktop结果:
Memory Used ≈ 0.9G Disk Used ≈ 13GRAM 已经明显低于:
GNOME 1.1G KDE 1.0G Cinnamon 1.1G而且实际操作起来非常直接。
XFCE 没有那么多复杂动画:
点击菜单 ↓ 直接出来 拖窗口 ↓ 直接移动 打开文件管理器 ↓ 马上响应在 VirtualBox 这种虚拟 GPU 环境里,这种传统桌面的优势非常明显。
十四、Xubuntu 26.04 Minimal:这才是我要的实验机
然后我重新安装:
Xubuntu Minimal结果:
Memory Used ≈ 0.7G Available ≈ 3.1G Disk Used ≈ 8.3G和 Desktop 安装相比:
Desktop Minimal Memory Used 0.9G 0.7G Disk Used 13.0G 8.3G也就是大约少:
RAM 200 MB Disk 4.7 GB这里 Minimal 的价值就非常清楚了。
它不只是为了省一点 RAM。
更重要的是:
系统预装的软件更少,测试基线也更干净。
我要装一个陌生软件时,更容易观察:
新增了哪些包 新增了哪些菜单项 新增了哪些依赖 新增了哪些服务对于软件实验机来说,这比单纯省几百 MB 内存更加重要。
而且 XFCE 在 VirtualBox 中的实际流畅度也是我这几套桌面里最满意的。
十五、Lubuntu 26.04:其实比 Xubuntu 还省磁盘
Lubuntu 使用 LXQt。
同样选择:
Minimal结果:
Memory Used ≈ 0.7G Disk Used ≈ 5.5G也就是说:
Xubuntu Minimal 0.7G / 8.3G Lubuntu Minimal 0.7G / 5.5G如果只是追求:
最低磁盘占用
Lubuntu 反而更漂亮。
所以我的结论并不是:
Xubuntu 是所有发行版中最省资源的。
准确说应该是:
Xubuntu Minimal 和 Lubuntu Minimal 的空闲 RAM 基本打平,而 Lubuntu 的磁盘占用更低。
但综合桌面完整度、实际操作习惯,以及我对 XFCE 这套传统桌面环境的体验,我还是更愿意长期保留 Xubuntu 作为软件测试机。
Lubuntu 同样是非常不错的轻量选择。
十六、Ubuntu Server:400MB,给出了一个很好玩的基线
最后我还装了:
Ubuntu 26.04 Server作为没有 GUI 的基线。
结果:
Memory Used ≈ 0.4G Disk Used ≈ 7G于是就有了一条非常直观的阶梯:
Ubuntu Server ≈ 0.4G ↓ Xfce / LXQt ≈ 0.7G ↓ KDE Plasma ≈ 1.0G ↓ GNOME / Cinnamon ≈ 1.1G当然不能简单理解成:
XFCE 本身正好吃 300MB。
因为每个发行版启动的服务和默认配置都不同。
但作为实际 VM 的整体结果,这已经很有参考价值。
顺便也能看出:
“没有 GUI”不等于“磁盘一定最小”。
Ubuntu Server:
7G反而还比:
Lubuntu Minimal 5.5G更大。
这再次说明:
RAM、磁盘占用、桌面轻重,本来就是不同维度。
十七、这次测试让我改变了一个看法:RAM 并不是最重要的指标
最开始我想当然地认为:
GNOME 很重 Xfce 很轻然后准备用free -h证明这一点。
真正测完以后发现,事情没这么简单。
例如:
Ubuntu GNOME ≈ 1.1G KDE Plasma ≈ 1.0G只差:
100 MB但实际操作体验却明显不是只差 100MB:
GNOME → VirtualBox 中明显容易顿挫 KDE → 顺畅很多 XFCE → 更加轻快直接这说明所谓“桌面轻量”,至少应该包括:
内存占用 CPU 开销 GPU / Compositor 压力 动画复杂度 后台服务 交互响应而对于我的用途:
GUI 软件测试机
实际界面流畅度尤其重要。
毕竟我要测试的是:
窗口 菜单 文件选择器 GTK / Qt 界面 系统托盘 字体 主题 拖拽 各种 GUI 交互如果 VM 自己的桌面都卡,就会给软件测试本身增加一个干扰变量。
所以现在我更在意的是:
桌面在 VirtualBox 里的实际响应是否足够直接。
这恰恰是 XFCE 很适合这个场景的地方。
十八、所以我最终选择 Xubuntu Minimal
经过这一圈实际测试,我最终留下:
Xubuntu 26.04 Minimal不是因为它每一项数据都是第一名。
实际上:
最低 RAM → Xubuntu / Lubuntu 并列 最低磁盘 → Lubuntu 最标准 Ubuntu Desktop → Ubuntu KDE 生态 → Kubuntu Windows 用户友好 → Linux Mint但如果问题变成:
哪一个最适合长期放在 VirtualBox 里,作为一台随时打开的 Ubuntu GUI 软件实验机?
我的答案还是:
Xubuntu Minimal。
因为它同时具备:
Ubuntu 官方 Flavor Ubuntu 软件生态 完整 GUI XFCE 足够成熟 VirtualBox 中很流畅 空闲 RAM ≈ 0.7G 安装基线比较干净这几个条件放在一起,正好符合我的用途。
十九、我的 Xubuntu 软件实验机配置
实际使用我准备给它:
2 vCPU 4 GB RAM 40~60 GB 动态 VDI VMSVGA 128 MB Video Memory 3D Acceleration实测空闲时只有约:
0.7 GB所以 4GB 对这种用途已经很宽裕。
毕竟它不是第二台主力机。
它通常只负责:
启动 ↓ 安装一个软件 ↓ 测试 ↓ 关机二十、真正让这台 VM 变成 Sandbox 的,是 Snapshot
Xubuntu 装好以后,我会先把基础环境准备完成:
Xubuntu Minimal ↓ 系统更新 ↓ Guest Additions ↓ 共享剪贴板 ↓ 分辨率和基础设置 ↓ 完全关机然后在 VirtualBox 中:
Snapshots ↓ Take创建一个:
Xubuntu Clean以后整个测试流程就变成:
Restore Xubuntu Clean ↓ 启动 VM ↓ 安装陌生软件 ↓ 随便折腾 ↓ 测试完成 ↓ 关机 ↓ Restore Xubuntu Clean下一次启动,又是一台干干净净的系统。
二十一、这甚至比“卸载软件”更省心
传统的软件测试结束以后:
卸载软件 ↓ 清理依赖 ↓ 找 ~/.config ↓ 找 ~/.local ↓ 找缓存 ↓ 还要考虑安装脚本到底改了什么VM Snapshot:
Restore结束。
无论软件是:
DEB Flatpak Snap AppImage 安装脚本 源码编译都一样。
这才是真正让我觉得它像:
Linux 版的软件 Sandbox。
二十二、Snapshot、Full Clone 和我以前直接复制 VM 目录有什么区别?
以前我的习惯其实更加简单粗暴:
VM 关机 ↓ 复制整个 VirtualBox VM 目录 ↓ 改名保存这个办法其实非常可靠。
因为.vbox、.vdi、Snapshots 等通常都在 VM 目录里。
完全关机后把整个目录复制下来,本质上就是:
文件级完整备份。
问题是:
慢 占空间 不适合每测试一个软件都复制一次所以现在我更愿意这样区分:
Snapshot → 日常测试的“撤销键” Full Clone → 独立、长期保存的完整母盘 复制整个 VM 目录 → 最朴素的离线文件备份对于这台软件实验机:
一个 Clean Snapshot 就够了。
也没有必要不断往下叠:
Snapshot 1 ↓ Snapshot 2 ↓ Snapshot 3 ↓ ……保持简单最好。
二十三、还有一个容易忽略的地方:Shared Folder 不会跟着 Snapshot 回滚
VirtualBox Snapshot 恢复的是:
Guest 的虚拟磁盘。
如果测试数据放在:
VirtualBox Shared Folder那文件真正存在:
Host并不在 Guest 的 VDI 里。
所以:
Restore Snapshot不会恢复 Host Shared Folder 里的文件。
如果我要测试:
一个软件到底会怎么修改某些文件
这些测试文件最好直接放到:
Guest 虚拟磁盘里面。
这样才能真正“一键恢复现场”。
二十四、Xubuntu 也不是万能测试环境
最后还是需要强调:
Xubuntu 是我的:
默认 GUI 软件测试环境。
但不是所有 Linux GUI 功能都应该用它测试。
例如:
GNOME Shell Extension Ubuntu Dock GNOME Settings GNOME Wayland 特性显然应该使用:
Ubuntu Desktop VM如果测试:
KDE Plasma Widget KWin Plasma Wayland Dolphin Plugin就应该用:
Kubuntu VM如果测试:
NVIDIA Driver 真实 GPU Wi-Fi Driver Bluetooth 特殊 USB 硬件 内核硬件兼容性虚拟机更不能完全代表实体机。
所以我的选择逻辑最终是:
普通 Linux GUI 软件 ↓ Xubuntu Minimal GNOME 特有功能 ↓ Ubuntu Desktop KDE / Plasma 特有功能 ↓ Kubuntu 真实硬件 / 驱动 ↓ 实体机写在最后
最开始我只是想解决一个非常简单的问题:
看到一个有意思的 Linux 软件,想装上看看,但又不想把自己的 Ubuntu 主系统越装越乱。
真正测试下来以后,反而顺便对几套 Linux Desktop 有了更直观的认识。
这次实测:
Ubuntu GNOME ≈ 1.1G KDE Plasma ≈ 1.0G Xfce Minimal ≈ 0.7G LXQt Minimal ≈ 0.7G Cinnamon ≈ 1.1G Ubuntu Server ≈ 0.4G但比这些数字更让我在意的是:
内存占用相近,不代表 GUI 体验相近。
在 VirtualBox 里:
GNOME → 明显更容易出现顿挫 KDE → 已经顺畅很多 XFCE → 非常轻快直接而我恰恰是为了测试:
GUI 软件。
所以最终决定我的,并不只是那几百 MB RAM。
而是:
轻量 + 完整 GUI + Ubuntu 软件生态 + VirtualBox 中足够流畅 + Minimal 安装足够干净 + Snapshot 可以随时回滚最终方案也就变得非常简单:
VirtualBox + Xubuntu 26.04 Minimal + 2 vCPU + 4 GB RAM + Xubuntu Clean Snapshot以后再看到一个有意思的软件:
装 ↓ 玩 ↓ 研究 ↓ Restore甚至连“这个软件到底能不能卸干净”都不用纠结了。
因为连卸载都可以省了。
