草稿¶
Linux 软件包管理¶
作为运维,常常需要和不同的 Linux 发行版打交道。在我看来,发行版之间的不同主要体现在软件包管理上。可以说,包管理器代表着发行版在软件工程上的选择,背后的打包策略、软件源管理、依赖解决等等都是发行版的特色,即所谓“哲学”。
个人偏好¶
- 我个人最经常使用 Debian 系发行版,熟悉 APT 的管理模式。
- 对于桌面端 GUI 应用,我尽可能选择 Flatpak。它优雅地分层解决了 GUI 应用对 DE、图形驱动程序的脆弱的依赖问题,同时提供了沙盒环境。可以通过 flatseal 控制 Flatpak 应用的环境和权限。
通用软件包查询:Repology¶
近期我遇到了这样一个需求:构建尽可能一致的多发行版集群,以便于测试和开发。阻碍我实现这个目标的主要是软件包的不一致性。我需要一个工具,能够查询不同发行版的软件包信息。
有几个网站提供各发行版软件包的查询服务,例如:
- Packages for Linux and Unix - pkgs.org:API 需要付费,网页查询需要频繁验证。
- Repology:网页查询无需验证,API 使用每秒 1 次且经常 Forbidden。但提供每日离线数据下载。
在大多数场景下,Repology 提供的离线数据查询可能是最好的解决方法。发行版在一个生命周期内,软件包的版本变化不会太大,每月更新数据都足以应对。
Linux 发行版软件包维护¶
软件包维护是 Linux 发行版的核心工作之一。
目前我正在准备成为 Debian 维护者,这里记录一些相关的信息。
不同发行版的差异¶
- Service 相关:
-
While deb packages in general enable and start services after installation, rpm packages don't do this and leave service enable and start to the sysadmin.
-