挑虚拟机里的 Linux 发行版,很容易一开始就选偏。多数人的做法是挑一个听过最多的名字,然后在接下来几个月里跟它较劲。其实有三个选项几乎覆盖了全部使用场景,而且各自在不同的处境下最出彩。
Ubuntu:稳妥的通用解
Ubuntu 之所以被当成默认选择,是因为它几乎什么都能一次跑通。Canonical 每两年发布一个长期支持版本,每个版本获得五年的标准安全更新,对不想隔几个月就重建虚拟机的人来说,这是一个可预期的系统。
它真正的优势在生态。几乎所有教程、论坛帖子和排错指南都默认以 Ubuntu 为例,出问题时答案通常一次搜索就能找到。软件厂商也倾向于先发布 Ubuntu 包,很多项目把它当作参考平台。Multipass、cloud-init 和 Windows Subsystem for Linux 都把它当一等公民对待,这意味着你可以在本地虚拟机、云实例和容器之间迁移,而不用重新学一遍。
代价也有。桌面版相比更精简的选项更吃资源,Canonical 建议大约 4GB 内存才能有舒适的图形体验。服务器版轻得多,对大多数虚拟机用途来说是更好的选择,真需要桌面环境之后再装也不迟。也有人不喜欢 Ubuntu 对 Snap 包的重度依赖,Snap 启动更慢,行为也和传统的 apt 安装不同,不过你通常可以避开。
如果你没有硬性要求,只想要一台和网上示例表现一致的虚拟机,Ubuntu 是合理的起点。它很少是最高效或最精简的选项,但最不容易浪费你一个下午。
Alpine Linux:轻量虚拟机之选
Alpine Linux 走的是相反的路。它不追求开箱即用,而是追求尽可能小。基础容器镜像只有几兆字节,虚拟机 ISO 相比典型桌面发行版只是零头。全新安装后空闲内存可以压在一百兆以下,当你在笔记本上同时跑几台虚拟机,或者把服务塞进一台便宜的云主机时,这一点很关键。
这种极简来自几个刻意的选择。Alpine 用 musl libc 而不是更常见的 glibc,核心工具依赖 BusyBox。它也不用 systemd,改用更简单的初始化系统 OpenRC。软件包由 apk 管理,安装软件只需几秒。安全也被写进设计里,默认配置经过加固,攻击面小,装的组件越少,能被利用的东西就越少。
需要留意的是兼容性。因为 musl 的关系,一些针对 glibc 编译的预编译软件无法正常运行,某些 Python 包或专有二进制文件可能需要额外处理或从源码编译。BusyBox 的命令行为也和 GNU 版本略有差异,按其他发行版写的脚本可能在这里出问题。对新手来说,这些怪癖会让 Alpine 显得不太宽容。
但对合适的任务,它很难被超越。Alpine 适合一次性测试机、网络设备、容器宿主,以及那些速度和效率比便利更重要的单一用途服务。如果你清楚自己要跑什么,并且不想系统里多出任何别的东西,Alpine 给的正好就是这些。
Debian:稳定优先
Debian 在历史上是 Linux 世界很大一部分的地基。Ubuntu 本身就建立在它之上,许多知名发行版也是如此。它的标志性特征是對稳定的深度坚持。新版本大约每两年发布一次,而且要先经过漫长的测试期,逐个检查软件包的缺陷和兼容性。每个版本随后获得约三年的常规安全支持,之后还有志愿者团队提供的额外长期支持,所以一次安装可以用上好几年。
这种保守正是重点。Debian 的稳定分支刻意提供更旧、经过充分测试的软件版本,而不是最新的,这意味着更新之后更少出意外。对一台跑数据库、文件服务器,或者你不想去碰的家庭实验室服务的虚拟机来说,这种可预测性很有价值。更新大多是安全补丁和缺陷修复,你今天配置好的系统,明年还是同样的表现。
Debian 也很精简,但并不难用。网络安装镜像很小,安装过程中你可以精确选择要包含哪些组件,从而搭出一台几乎没有多余负担的干净服务器。它使用 glibc 和 systemd,因此和绝大多数软件保持兼容,避开了 Alpine 上可能遇到的摩擦。文档详尽,而且因为 Ubuntu 共享它的包格式和工具链,大多数 Ubuntu 指南可以直接套用。
缺点是更新版本的软件可能要等上一阵,一些开发者会觉得旧包受限。需要时可以用 backports 和第三方软件源补上。但如果你的优先项是一台安静可靠的虚拟机,Debian 就是该选的那个。
按任务挑发行版
Ubuntu 适合通用场景,Alpine 在体积和速度重要时胜出,Debian 回报那些看重长期稳定的人。让发行版去匹配工作负载,而不是默认选那个熟悉的名字,你的虚拟机会好跑得多。
热门跟贴