为什么你应该选择 Debian
- 操作系统
- 2023-02-04
Linux 的发行版之争历来经久不息,大家选择一个发行版,除了主观感情上的喜好,还是有很多客观指标可以参考的:
用户多不多,开发者多不多。这个很好评判,基本上随口就说的出来名字都不差;官方维护的过程是否透明,有公开的 bug 管理系统,源码管理系统;官方文档是否丰富,主要是用户手册以及 wiki 文档;收录的软件包多不多,新不新,从 https://repology.org 看活跃的软件仓库排名为 NixPkgs, AUR, Debian, FreeBSD Ports, DPorts, Fedora, Gentoo, Guix, pkgsrc, openSUSE, Alpine, LFS/BLFS;官方是否有严格的软件包提交、构建、质量测试;是否老版本的二进制、源码包可以方便获取,这说明了这个发行版是不是注重维护历史,下面分析下这点。从 https://github.com/FabioLolix/LinuxTimeline 的超大图看,有几个坚挺的老祖宗:
1992, Slackware1993, Debian1994, Redhat2000, Gentoo2002, Arch Linux2004, Ubuntu源自 Slackware 的 S.u.S.E. 本来也算厉害,可惜被卖来卖去,如今 openSUSE 影响力不大了。
先说结论,Slackware、Debian、Ubuntu、Redhat、SuSE 直接在软件仓库里附带了源码包,其中 Slackware、Debian、Ubuntu、Redhat 历史留存完好。Slackware 虽然很值得敬仰,但基本是个人作品不适合做服务器用途,Redhat 商业化味道很重,版本比较乱,历经多次变更,尤其现在 CentOS 不再让白嫖了,实在没必要再去贴冷屁股,SuSE 断代的她爹都不认识了,Ubuntu 14.04 之前的版本不支持 apt 直接更新软件包,所以剩下的只有值得信赖的 Debian 了,2022 年依然可以使用 2005 年发布的Debian Sarge(3.1)。
Gentoo 和 NetBSD 保存了比较完整的源码包,定期删除,LFS/BLFS 也提供源码包镜像,但收录的软件包比较少。FreeBSD ports 和 DPorts 保存了部分源码包, 其它诸如 NixPkgs、AUR、Guix、Alpine 都是直接下载软件包官网的源码包,所以不要指望方便的找回老版本了,只能可劲的升级升级再升级永不回头。
Debian 软件仓库里的 pool/ 下面包含了源码,以 \*.dsc 文件描述,Ubuntu 也保存了老版本,但是 14.04 之前的版本不在 archive 里,不知何故:
Redhat:
Index of /redhat-archive/redhat/linux/
Fedora:
https://archives.fedoraproject.org/pub/archive/fedora/linux/releases/
CentOS:
EPEL:
Slackware 镜像很完整,老版本一直存着:
FreeBSD distfiles 里只有部分软件包,其它的在外部源上:
Index of /freebsd-ports/ (此目录下的 distfiles/ 目录)
https://github.com/freebsd/freebsd-ports/blob/main/Mk/bsd.sites.mk
https://github.com/freebsd/freebsd-ports/blob/main/Mk/bsd.port.mk
DragonFlyBSD 使用FreeBSD 的distfiles,自己也补充了一部分:
Gentoo:
https://wiki.gentoo.org/wiki/Handbook:AMD64/Installation/Base
Index of /gentoo/ | 清华大学开源软件镜像站 | Tsinghua Open Source Mirror (此目录下的 distfiles/ 目录)
NetBSD:
Index of /pkgsrc/ | 清华大学开源软件镜像站 | Tsinghua Open Source Mirror (此目录下的 distfiles/ 目录)
https://archive.netbsd.org/pub/NetBSD-archive/
LFS 和 BLFS 收录的软件包不多:
ArchLinux 保存了二进制包历史,但没有保存源代码。ArchLinux 确实从来就不保存源码,它只有 PKGBUILD 和补丁文件。
https://github.com/archlinux/svntogit-packages
Cygwin 保留最近几个版本,有源码。第三方 TimeMachine 保留了 2002 年以来的老版本。
Cygwin Package Summary for git (source)
MinGW + MSYS 使用 Pacman 管理二进制软件包, 在 github 上管理 PKGBUILD 文件。