level 10
1.新套件或新版本一律进入unstable (sid)
2.套件在unstable待了一定时间后,只要没问题就会进入testing
3.如果testing里的套件有RC(Release Critical) bugs没即时处里,就会被踢出testing(所以可能某软体在stable / unstable里都有,但testing里没有)
4.原则上Debian的套件「不会」rebuild,stable里的binary就是当初进入unstable里的那个binary (某些distro在发行新版前会全系统rebuild,Debian并不这么做。)
什么情况下testing会变成stable呢?
1.首先会订出新的stable release goal
2.决定schedule、新的stable release kernel / toolchain version
3. kernel / toolchain搞定后会把testing freeze(冻结)
4.开始疯狂除错,「原则上」Debian stable release是不能有RC bugs的
5.当freezed testing RC bugs都被清完后,就可以把testing变成stable了(也就是发行新版的Debian)
6.以目前来说,testing叫作bullseye。当bullseye变成stable时,buster就会变成oldstable;stretch就被扔进仓库去了。然后新的testing会另外有个新的codename。unstable还是一直都叫作sid。
2020年05月29日 13点05分
5
level 10
从以上过程不难看出为什么stable的软件包会比较老旧了。问题就在Testing的冻结和除错上,这个过程需要3-6个月甚至有的还要一年左右的时间才能几乎除错完成(哪怕就是stable正式发布后,仍然会有少许软件包有致命bug,这种情况下还要进行软件包的除错修复以及第一时间发布更新的软件包进行bug修复,比如debian10里的akonadi就是一个例子。稳定版发布后有用户发现致命问题,结果就发布了一个紧急修复)。为了稳定,就得有一定的牺牲和代价,就是软件包不那么新了,但换来的是软件和系统的极致稳定。
另外有经验的用户都知道,debian的stable testing sid三个分支里,testing分支仓库里软件包是最少的,目前仅仅有56000多个。stable有58000多,sid差不多接近60000.testing虽然不像sid那么激进,但是会有一些软件包和组件依赖没打包,容易会出现安装软件时找不到依赖的问题。
2020年05月29日 13点05分
6