用Debian少说也有十几年了,从当年满世界找软盘安装包,到今天拿U盘几分钟装一个最新版,感触最深的不是它变好用了,而是它的版本历史本身就记录了整个Linux生态的演进过程。很多人一听到“版本历史”就觉得这是维基百科的活,跟自己日常使用没什么关系。但实话讲,搞清楚Debian每个版本改了什么、代号怎么来的、稳定版和测试版之间是什么关系,你后面查教程、配软件源、调网卡、排查升级问题,都能少走特别多弯路。
这篇文章我打算从三个层面讲清楚Debian版本历史这回事:一是版本代号和演进脉络,帮你在脑子里搭一张完整的时间线;二是stable、testing、unstable这套发布模型到底怎么运作;三是结合大量热搜词里大家真正遇到的问题,比如debian包管理、debian网卡配置文件、debian设定ip、debian 双网卡默认路由、debian 10离线安装ufw、debian 13 网络命令,甚至VLC播放HEVC失败、微信不能打字这些实操项,把版本差异和实际场景串起来讲。不管你是刚接触Debian的新手,还是想升级系统又怕翻车的老人,这篇文章应该都能给你一些参考。
1. 为什么一个普通用户也要搞懂Debian的版本历史
1.1 版本号背后是一整套系统演进的缩影
Debian的版本号看起来很简单,1.0、2.0、3.0一路排到现在的12、13,但这个简单数字背后是整个Linux生态在过去三十年里的变迁。你用的包管理工具、网络配置方式、默认系统初始化程序、桌面环境,甚至网卡命名规则,全都跟版本演进强相关。
我举一个特别典型的例子。早年你用Debian,网络配置文件是/etc/network/interfaces,设IP就在这个文件里写iface eth0 inet static加一堆参数。到了Debian 8以后,systemd成为默认init,很多机器开始用systemd-networkd或者NetworkManager管理网络,传统interfaces文件虽然还能用,但新的图形化安装器默认给你的方案可能已经变了。再到最近的版本,网卡名从eth0变成了enp3s0这种基于硬件位置的命名,你照着老教程去找eth0可能根本找不到。这就是版本历史对日常操作最直接的影响。
所以说,搞懂版本历史不是说你要背下每个版本的发布日期,而是你得知道:你现在用的系统处在哪个阶段,哪些老经验还能用,哪些已经淘汰了,哪些坑是某个特定版本才有的。这些知识比背命令有用得多。
1.2 从一份sources.list说起:版本代号与软件源的关系
接触过Debian的人对/etc/apt/sources.list应该不陌生。里面每一条源地址都带着一个版本代号,比如bookworm、bullseye、trixie。这些代号不是随便起的,每一个都对应一个具体的版本,而且全都来自皮克斯动画片《玩具总动员》里的角色。
为什么用玩具总动员的梗?这事得从Debian创始人Ian Murdock说起。最早的几个版本就用的是玩具总动员里的角色名,包括Buzz、Rex、Bo这些,后来这个传统一直保留了下来,成了Debian社区的一个标志性特色。Debian 1.1叫Buzz(巴斯光年),2.0叫Hamm(猪排博士),3.0叫Woody(胡迪),8叫Jessie(翠丝),12叫Bookworm(书虫)。你看一遍这几个名字,基本就能把版本时间线记住一半。
理解这个代号体系对你实际有什么帮助?最大的帮助就是配置软件源的时候你不会搞错。比如网上教程让你把源改成bookworm,你用cat /etc/os-release看自己的系统是老的buster,那这段配置就不能直接抄,得先把代号替换成自己系统的版本。版本历史不只是谈资,是真能帮你在网上找资料的时候避坑的。
2. Debian发行版本的时间线:从Buzz到Trixie
2.1 早期版本:铺垫基础与apt的诞生(1.1到2.2)
很多人不知道,Debian的1.0版本其实从来没有正式发布过。1993年Ian Murdock启动了Debian项目,但直到1996年才发布了第一个稳定版本1.1 Buzz。这个版本的包管理用的还是最原始的dpkg,依赖关系处理基本靠手动,装一个软件包经常被依赖问题折磨得够呛。但也就是从这个版本开始,Debian确立了自己“纯粹、开放、自由软件优先”的社区路线。
到了Debian 1.2 Rex和1.3 Bo,整个项目还在打磨基础工具链,比如把gcc、libc这些底层库跟上主流。真正里程碑式的变化发生在Debian 2.0 Hamm。这个版本从libc5切换到libc6(也就是glibc 2.x),同时开始支持alpha和m68k等非x86架构,Debian“通用操作系统”的气质从这时候就显出来了。
但要说对后来影响最大的,还得是Debian 2.1 Slink。这个版本第一次引入了apt(Advanced Package Tool)。apt的出现彻底改变了Linux软件安装的体验。以前你要装一个软件,得自己下载包,自己手工处理一串依赖,apt把依赖关系全部自动搞定,一条apt-get install就完事。后来红帽系搞的yum、dnf,其实就是参考了apt的思路。你现在觉得apt install是理所当然的,但在1999年那会儿,这算是一场软件分发方式的革命。2.2 Potato进一步引入iptables支持,也为后来Debian在服务器领域的普及打了底。
2.2 走向成熟:从Woody到Squeeze(3.0到6.0)
Debian 3.0 Woody发布的时候是2002年,这个版本我第一次正经拿它当服务器系统用。Woody最大的贡献是把SSL和加密工具链带进了基本系统,OpenSSH、OpenSSL这些成为标配。从安全角度讲,这是Debian从“能跑就行”到“能安全地跑”的转折点。Woody也是第一个支持s390(IBM大型机)的版本,企业级市场开始注意到这个社区驱动的发行版。
然后是Debian 3.1 Sarge。这个版本的安装器是重点,图形化安装界面终于来了。以前装Debian你得面对一片蓝色底的白字菜单,一步步手动分区手动选包,Sarge把安装体验拉到了接近友商的水平。从Sarge开始,Debian安装不再是一种“受罪”,而是一种“可接受”的流程。
Debian 4.0 Etch在2007年发布,debian-installer成为默认安装器。那个经典的图形化安装向导,一直到今天的Debian 12还在用类似的框架,只不过界面现代化了很多。Etch还正式引入了对amd64架构的支持,这个太关键了。当年服务器市场正处于32位到64位迁移的关口,Debian 4.0让喜欢跑64位系统又不想折腾Gentoo的人有了一个稳定选择。
Debian 5.0 Lenny和6.0 Squeeze则属于“稳中求进”的版本。Lenny加强了笔记本电源管理和无线网络支持,让Debian在桌面端也慢慢能用了。Squeeze在2011年发布,做了很多底层铺垫工作,包括开始支持multiarch(多架构共存)的概念,为后来的软件安装方式变化打下了基础。Squeeze还是第一个提供Debian官方云镜像的版本,我在OpenStack上最早用的就是Squeeze云镜像,那时候云计算刚在国内兴起,Debian跟着这波潮流悄悄抢了不少地盘。
2.3 现代化转身:Wheezy、Jessie、Stretch(7.0到9.0)
Debian 7 Wheezy在2013年发布,最值得说的就是UEFI安装支持。当年正好赶上传统BIOS向UEFI过渡,很多发行版手忙脚乱,SUSE和Ubuntu支持得早,Debian在Wheezy把UEFI启动装进来了,而且兼容性做得还可以。我印象很深的是一台戴尔的老服务器,UEFI固件特别不标准,Wheezy居然能装进去,后来换其他发行版反而各种问题。
Debian 8 Jessie是2015年的版本,这一个是Debian历史上争议最大也最重要的版本之一,因为systemd成为默认的初始化系统。当年关于sysvinit还是systemd的争论现在回头看仿佛历史了,但Jessie确实承担了这个转型的重任。systemd带来了一套完全不同的服务管理方式,你不用再写一堆/etc/init.d/下的shell脚本,而是用systemctl start、systemctl enable这些命令。现在网上所有跟你讲systemctl的教程,本质上都是从Jessie时代开始普及起来的。如果你是老Debian用户,你在Jessie上花时间适应的东西,到今天Debian 12、13还一直在用。
Debian 9 Stretch在2017年发布,这版看起来变化不大,但对日常使用影响很深。比如它默认启用了Predictable Network Interface Names,网卡名从eth0变成了enpXsY这种格式。很多人从CentOS或者老版本Debian迁移过来,第一反应就是“我网卡怎么不见了”。其实不是没了,是名字变了。Stretch还默认启用了需要签名的Secure Boot支持,安全引导也跟上了时代。桌面环境方面,Stretch的GNOME更稳了,Xfce也成了官方推荐的可选桌面。
2.4 近几年的版本:Buster、Bullseye、Bookworm与Trixie(10到13)
Debian 10 Buster发布于2019年,这代在网络方面有一个重要变化:nftables开始成为默认防火墙方案,虽然iptables还能用,但新项目建议直接用nft。也就是说,如果你现在跑到一台新装好的Debian 12上想配防火墙,看到iptables还在,但官方文档更推荐nftables和ufw这类前端工具,这背后就是Buster时代开启的方向。Buster还是第一个支持exFAT文件系统的Debian版本,对于经常在Linux和Windows之间倒U盘文件的人来说,这个意义不用多说。
Debian 11 Bullseye在2021年发布,亮点之一是默认启用新内核里的exFAT驱动,文件系统支持更完整。此外,Bullseye的软件包全面翻新,GNOME 3.38、KDE Plasma 5.20、Firefox ESR这些都在里面。更重要的是,Bullseye引入了新的密码策略工具和更多安全加固,服务器上如果你用fail2ban,Bullseye装起来明显比以前顺。
Debian 12 Bookworm是2023年发布的版本,也是当前最主流的稳定版。Bookworm最引人注目的一点是把非自由固件单独拆成一个软件归档,也就是说如果需要闭源的无线网卡驱动、显卡固件,不再强制混在默认源里,用户可以根据自己的硬件情况自主添加。这个改动解决了不少人“装系统之后无线网卡没驱动”的尴尬,也能让完全自由软件洁癖的用户更方便地拿到纯净系统。Bookworm还引入了新的统一内核镜像机制,把启动相关文件结构重新整理了一遍,虽然用户感知不强,但底层进步很扎实。
现在正在开发的是Debian 13 Trixie,预计在2025年年中左右发布。Trixie一旦进入新版本周期,现在跑Bookworm的用户就会变成stable的下一个升级目标。Trixie会带来更新的内核、更新的桌面环境,以及更现代化的网络管理栈。我个人的建议是,如果你手头没有必须锁死的生产环境,Trixie的beta版其实可以在虚拟机里先玩起来,等正式发布之后你的升级焦虑会小很多。毕竟每次大版本升级,最怕的不是软件不会装,而是升级过程中那些历史包袱。
3. 版本背后的发布模型:stable、testing与unstable
3.1 三条分支如何并行运转
Debian的版本历史不只是“过去式”,它每天都在发生。理解Debian,最关键的是明白官方永远同时维护三条分支:stable(稳定版)、testing(测试版)、unstable(不稳定版)。
unstable的代号永远是
sid。这个代号也来自玩具总动员,Sid是那个喜欢拆玩具的调皮男孩。Debian社区用这个名字很自嘲:unstable版本就是拿来“拆”的,软件新、依赖激进,适合开发者和追求新硬件的用户。你在Debian上如果想装一个老版本不兼容的驱动,老鸟经常会让你加unstable源,但你自己得清楚这是在主动接受风险。testing是unstable里的包经过一段时间的检验、没有严重bug之后自动晋升上来的。它介于新版功能和生产稳定之间,很多喜欢新特性又不想太刺激的人会选testing。当前testing的代号就是未来要发布的版本代号,现在也就是trixie。
stable则是经过testing进一步冻结和验证之后结晶出来的正式版本,比如现在的bookworm。stable不代表功能最新,但代表经过千锤百炼,生产环境最放心。
这套模型最有价值的地方是:它让Debian不需要像有些商业发行版那样,靠“隔几年憋一个大版本”来维持市场热度。Debian的节奏是滚动式的,版本号只是时间切片,软件包每天都在流动。这也是为什么Debian服务器可以连续跑很多年不重装,你只要按着版本升级路径走,大版本间的迁移成本远比想象中低。
3.2 版本生命周期与升级路径
Debian没有像Ubuntu那样承诺每半年发一版,它的发布周期完全取决于质量,通常两年左右一个版本。每个stable版本官方大约维护三年,包括安全和关键更新。三年之后,如果你还停在旧版本,就会面临依赖漏洞没有官方补丁的问题。这也是为什么你不应该抱着老版本不撒手,该升级还是得升级。
从旧的stable升级到新的stable,官方推荐路径是逐个版本升,比如buster -> bullseye -> bookworm,不建议跨两个大版本直接跳。中途需要做完整备份、检查自定义软件源是否还兼容、确认内核和引导配置是否能跟上。我在升级Debian 10到Debian 11的时候,遇到过因为自定义了apt preferences导致dist-upgrade卡住的问题,后来排查半天才发现是手写了一个pin规则把内核包锁旧了。这种问题在社区里特别常见,老话说得好:升级之前先看看自己到底改过什么。
3.3 查看自己系统的版本号
不管你是哪一年的Debian用户,第一步永远是先确认自己到底跑在哪个版本上。常用的命令有三个:
cat /etc/debian_version这条命令最直接,看到的数字就是当前大版本,比如12.5表示Debian 12的第5个维护更新。
lsb_release -a这条命令的输出更友好,会显示Distributor ID、Description、Release、Codename,其中Codename就是bookworm这种代号。
hostnamectl在systemd时代,这条命令除了显示内核和系统信息,也能看到操作系统版本。在脚本里想自动化判断版本,用grep VERSION_ID /etc/os-release更稳定。
我自己的习惯是装完系统第一件事就cat /etc/os-release,把这个输出截图存起来。后面配源、装驱动、查日志,都拿这个输出去对版本,至少不会在“我的系统到底什么版本”这种低级问题上翻车。
4. 不同版本下最容易踩坑的实操差异
4.1 包管理:apt、dpkg与.deb文件安装
Debian包管理是热搜词里出现最多的一个方向,确实也是新手最常出问题的地方。Debian的包管理核心是dpkg,apt只是前端管理器。你手动下载的.deb文件,可以用dpkg -i直接装,比如:
dpkg -i google-chrome-stable_current_amd64.deb但dpkg有个致命弱点:它不处理依赖。如果你装的这个deb依赖另外几个包,dpkg会直接报依赖缺失。这时候最简单的做法是:
apt install ./google-chrome-stable_current_amd64.deb注意这里apt会主动解析并安装依赖,比dpkg省心太多。在Debian 10及以后版本的apt都支持直接传本地deb文件的路径,这个写法几乎成了我安装deb包的默认姿势。
如果你是在桌面环境双击deb文件,Ubuntu那种“软件中心”式的图形安装器Debian不一定默认自带。许多Debian装机默认只装了一个文件管理器,没有图形化安装GDebi,遇到deb文件直接双击会弹出“没有可用的应用来打开”这种提示。解决方式要么是命令行安装,要么先装gdebi:
apt install gdebi还有一个老生常谈的问题:不要混用多个发行版的二进制包。有人说“我从Ubuntu下载了一个deb拿到Debian装”,这实际上风险不小。虽然底层都是Debian系,依赖库版本差异可能导致装完系统环境被破坏。我自己就见过有人把Ubuntu的libssl装到Debian上,结果一堆服务起不来的惨案。所以安装deb文件前,先确认来源渠道和对应发行版,再动手。
4.2 网络配置:从interfaces到NetworkManager与systemd-networkd
debian网卡配置文件和debian设定ip是热搜里的高频词。在老版本(Debian 7及以前),配置IP的正统姿势是编辑/etc/network/interfaces:
auto eth0 iface eth0 inet static address 192.168.1.100 netmask 255.255.255.0 gateway 192.168.1.1 dns-nameservers 8.8.8.8然后systemctl restart networking或者ifdown eth0 && ifup eth0生效。这个方法在新版本里依然兼容,但已经不再是系统默认推荐路径。进入systemd时代后情况就分化了,Debian 9以后如果你选择默认安装,网络管理可能交给NetworkManager(尤其是带桌面环境时),也可能走systemd-networkd,取决于你安装时选的方案。
现在配置IP更推荐用ip命令临时验证,再用systemd-networkd做持久化配置。比如在/etc/systemd/network/下建一个10-static.network:
[Match] Name=enp3s0 [Network] Address=192.168.1.100/24 Gateway=192.168.1.1 DNS=8.8.8.8然后systemctl enable --now systemd-networkd把这个网络配置文件应用上。这套体系在Debian 13的规划里会是绝对主流,所以如果你现在就在琢磨“debian 13 网络命令”,直接拥抱systemd-networkd肯定没错。
实操中我觉得最稳的方案是装系统时选择手动配置,装完立刻用ip link看网卡名,再用ip addr看当前IP,先拿到连通性,再按正式配置一次到位。不要对着老教程无脑抄eth0,尤其是在笔记本和虚拟机上,网卡名基本都是enp*、ens*这种。
4.3 不同版本的防火墙与常用网络命令变化
debian 10离线安装ufw这个话题很有代表性。Debian 10默认并没有安装ufw,所以你想用的时候第一反应是apt install ufw,但如果你所在的机器根本无法联网,这就尴尬了。离线安装ufw的正确思路分三块:先在有网的一台Debian 10机器上下载ufw及其依赖的deb包,拷贝过去,再dpkg安装。
命令大致是这样:
# 在有网机器上 mkdir ufw-offline cd ufw-offline apt download ufw apt download python3-iptables # 常见依赖,实际以版本为准把所有下载的deb拷到离线的机器上,然后:
dpkg -i *.deb如果dpkg报依赖缺失,就把提示的包名继续在有网机器上apt download拉回来,循环几次就装齐了。这个办法不只适用于ufw,离线装任何软件都能用。Debian 10以后apt有一个隐藏技巧:apt install --download-only也可以只下载不安装,适合批量拉依赖。
网络命令这块变化就更大了。老教程喜欢用ifconfig、route、netstat,新系统默认情况这些命令不一定装了,得先apt install net-tools才有。而新系统自带的iproute2套件里,ip addr、ip route、ss才是正统。Debian 13规划里对ip命令的依赖会更强,你用ss -tlnp看监听端口,用ip route show看路由表,都是新版系统最地道的姿势。
4.4 双网卡默认路由的配置思路
双网卡默认路由是真·高频问题,尤其服务器或者软路由场景。很多人插了两块网卡,结果发现流量全走其中一块,另一块死活不干活。根子在于Linux只能有一条默认路由,谁metric小(优先级高)谁说了算。如果你想实现“一个内网一个外网”,最保险的做法是给内网网卡配明细路由,而不是跟默认路由抢:
ip route add 192.168.10.0/24 dev enp2s0 src 192.168.10.10这样去内网网段的流量自动走enp2s0,其余流量继续走默认路由。如果一定要改默认路由的优先级,可以在systemd-networkd的network文件里给Gateway写上,然后通过RouteMetric调高或调低:
[Network] Address=192.168.1.100/24 Gateway=192.168.1.1 RouteMetric=100另一块网卡的metric设成200,默认路由就跟着metric小的走。这个配置在interfaces老式文件里对应的是metric 100参数,但在新systemd-networkd里是RouteMetric=。版本不同、配置路径不同,但核心逻辑是一样的:路由走向取决于当次查表的匹配规则和metric优先级。
5. 常见问题与排查技巧实录
5.1 国内软件源与sources.list配置问题
很多人在Debian装完第一件事就是换国内源,这确实没错,因为官方源在部分地区访问速度确实不太稳定。配源之前你得先分清楚你的版本是哪个代号,比如bookworm对应Debian 12,trixie对应Debian 13,不要拿12的源写到13上。
一行命令换国内源的小技巧:
sed -i 's|deb.debian.org|mirrors.tuna.tsinghua.edu.cn|g' /etc/apt/sources.list但要注意,Debian 12的官方源配置已经搬到了/etc/apt/sources.list.d/debian.sources,这个文件采用deb822格式,直接改/etc/apt/sources.list可能根本不生效。所以你第一步应该看目录里有哪些文件,再决定替换什么。这是版本历史差异直接影响到日常操作的典型场景。
换完源必须apt update刷新索引,如果报签名问题,多半是gpg密钥没安装,可以检查/etc/apt/trusted.gpg.d/和keyrings目录。有些第三方源需要单独下载密钥文件到/usr/share/keyrings/,再用signed-by指定密钥,比如:
deb [signed-by=/usr/share/keyrings/nginx-archive-keyring.gpg] http://nginx.org/packages/debian bookworm nginx5.2 双网卡默认路由与IP配置问题
双网卡和IP配置可以说是“重启网络之后失联”的重灾区。你远程连着一台服务器,手滑改了网络配置,systemctl restart networking一下,连接断了,但你人不在机房,这就非常难受。
我的经验是:改网络配置前三件事,第一,把完整的配置命令先写在另一个文件里,比如/root/network-backup.txt;第二,用ip addr和ip route记录当前状态;第三,写一个自动回滚脚本放到cron里,比如两分钟没有你的心跳ping就自动恢复旧配置。远程改网卡配置翻车的概率不低,这套预案做足了,容错率完全不同。
另外,Debian 10以后的NetworkManager和systemd-networkd同时存在时,很容易出现“配置文件没问题但网络不生效”。你先用systemctl status NetworkManager systemd-networkd看哪个服务在跑,再决定改哪套配置,不要两头都改。要么纯用NetworkManager,要么纯用systemd-networkd,混着跑基本就是互相打架。
5.3 VLC播放HEVC失败与桌面输入法问题
VLC无法播放HEVC/H.265视频这个问题不只在Debian上有,但Debian因为版权原因,官方仓库里的VLC经常不带全套编解码器。你装完VLC,打开一个H.265视频,黑屏、有声音或彻底没反应,都是解码器缺失导致。
解决思路分两步。第一步,先装VLC推荐的额外解码包:
apt install vlc-plugin-access-extra libavcodec-extra第二步,如果还不行,就去VideoLAN官方下载AppImage版本,或者使用Linux版的VLC Flatpak,Flatpak版内置解码器更全。你可能会问,为什么不建议直接搞deb-multimedia源?那个源功能确实全,但它跟Debian官方源的依赖冲突很常见,生产环境或者追求稳定的话,我能不用就不用。
微信不能打字这个问题,其实跟“系统不能输入中文”基本是一个问题。Debian下常用的输入法框架是fcitx5和ibus。你装了微信输入不了中文,多半是微信没有使用系统默认的输入法框架。解决办法是设置环境变量,在/etc/environment里加:
GTK_IM_MODULE=fcitx QT_IM_MODULE=fcitx XMODIFIERS=@im=fcitx如果你用的是ibus,对应的就改成ibus。改完重启会话再试,绝大多数输入法拉胯的问题都能解决。这里有一个版本差异要注意:Debian 11以后fcitx5已经比较完善了,而老版本里fcitx4才是默认,装错了版本照样不生效。选对输入法框架版本,和设置环境变量一样重要。
5.4 升级系统时的常见坑
Debian大版本升级最常翻车的点,我总结下来无非几个:第三方源不兼容、本地软件包被hold住、内核引导没装上、桌面环境配置残留。
第三方源是最大的坑。你升级之前,先禁用或移除所有非官方apt源和第三方PPA(Debian下其实没PPA,但第三方源类似),比如Nginx官方源、Docker官方源、deb-multimedia这些,升级完再按新版本重新加入。我自己在Bullseye升级Bookworm时就遇到过Docker源里还是老版本签名密钥导致apt update报错的情况,最后是删掉旧keyring文件重新装Docker才解决。
hold住的包也会让升级卡住。解决办法是在/etc/apt/preferences.d/里检查有没有奇怪的pin规则,用apt-mark showhold看哪些包被锁住了。内核引导问题则是升级完一定要检查/boot目录,确认新内核的vmlinuz和initrd.img都在,不然重启后可能是空欢喜。
桌面环境残留的问题主要影响安装了桌面版的用户。升级完GNOME或者KDE,经常出现插件不兼容、图标丢失。我一般会建议,有条件的情况下桌面版升级最好直接重装,数据放单独分区,升级完挂载回来,干净又省事。服务器版倒是无所谓,因为残留少,升级完跑一段时间观察一下内存和日志就好。
6. 我的一些实战心得
最后说点感受性的东西。Debian这个发行版,它不像有些商业化系统那样热衷于折腾“下一个大版本”,它的版本历史里没有那么多激进革命,每一步都走得很稳,甚至有些保守。但这种保守恰恰是生产环境最需要的特性。
我自己手头有一台跑了快十年的服务器,从Debian 7一路升到Debian 12,中间除了两次因为自己手痒乱加源导致的折腾,基本没出过大毛病。每次大版本升级前,我都会在虚拟机里先把新版本跑一遍,把关键的服务配置试一遍,再动真机。这个习惯帮我避开了不少坑,建议你也试试。
另外,Debian版本历史里有一个特别值得学习的地方,就是它尊重“滚动演进”而不是“推到重来”。testing分支里的软件经过层层筛选才进入stable,这种质量把关机制,保证了每一个版本的Debian都配得上“稳定”这两个字。你在日常使用中也一样,别急着追求最新的大版本,稳定运行的系统才是最有价值的系统。
如果你准备从旧版本升级,或者打算入坑一个新版本,我的建议很简单:先跑虚拟机,再试生产;先看syslog,再动服务。版本历史再精彩,落到你自己的机器上,也只有“能用、稳定、可控”这六个字是真的。祝你在Debian的世界里少踩坑,多收获。