从 Ubuntu 到 AlmaLinux
以前,我所有的服务器上,用的全是清一色的 Ubuntu。官方源里有很多软件包;第三方软件的支持也很不错:
- 帮小白鼠搭皮肤站,Ubuntu 18.04,加了 ondrej/php PPA,跑 Minecraft 皮肤站;
- 我自己的服务器,用的是 Ubuntu 20.04,跑 QQ 机器人和网站;
- 我在实验室的工位上的电脑,装的是 Ubuntu 16.04,运行 ROS Kinetic;
- 实验室的 NextCloud,用的是 Ubuntu 16.04,也加了 ondrej 的 PPA;
- 实验室另一台存储服务器,装了 Ubuntu 20.04。
随着时间的推移,Ubuntu 短暂的生命周期变成了一个严重的问题。
2021 年 4 月,Ubuntu 16.04 的标准支持结束了,ondrej 的 PPA,以及 LLVM、Neo4j、MongoDB、PostgreSQL 等一系列第三方软件源,也不再支持旧版系统。是时候升级了。然而,实验室的电脑自然不敢轻举妄动,老师和同学都反对升级;我和小白鼠的服务器想要升级,但也不知道会不会遇到问题。
AlmaLinux 与 RHEL 8 1:1 兼容。RHEL 8 及其周边生态,带来了很好的体验:
- DNF:RHEL 8 实装了 DNF 包管理器。DNF 使用方便,输出清晰,功能强大。DNF 支持回滚和撤销,既可以撤销一次的操作,也可以把整个系统回滚到某次操作之前。
- EPEL:EPEL 源中有大量高质量、实用的软件。
- AppStream:可以方便地安装新版软件。以 Nginx 为例,支持 1.14、1.16、1.18、1.20 版本,EPEL 中还有最新的 1.23 版本;PHP 有 7.2、7.3、7.4、8.0 版本;Python 也有 2.7、3.6、3.8、3.9。
相比 Ubuntu,优势主要在两方面:
- RHEL 8 的生命周期在 2029 年才结束,AlmaLinux 也表明至少会支持到 2029 年。我的大部分应用在容器中运行,频繁地更新系统收益并不高,更长的生命周期却能有效降低维护成本。
- 另一方面,有了 AppStream,使用新版软件的需求也能轻松满足,不必自己编译或从 PPA 安装。
在后续的文章中,我会具体列出系统的设置,以及安装的服务。