嘟嘟社区

[经验] [喂饭]将debian稳定版更换成testing版,并修改内核启动顺序,bbr3


本帖最后由 ajeef 于 2024-8-16 13:35 编辑

debian有三种主要的发布版本:“稳定(stable)”版、“测试或者叫候选(testing)”版和“不稳定(unstable)”版。此外,还有“旧的稳定(oldstable)”版(也就是之前的“稳定”版),以及“实验(experimental)”版。

日常的逻辑思维看见test就以为是不稳定,其实testing(测试候选版本)和stable(稳定版)的区别是,testing是下一个debian稳定版发行版的当前开发状态,所以它的发行代号,也是下一个版本的代号,你可以cat /etc/debian_version或者lsb_release -a来查看,可见下一个版本叫trixie,历史上所有的稳定发行版都来自于这个testing的冻结状态。
testing(候选版本)也必须比“(unstable)不稳定版”含有更少的缺陷,且不能存在致命缺陷(“紧要”和“严重”两个级别都必须消失),强制要求不能损坏当前系统的任何软件包,毕竟是当“有效候选者”的版本,最基本的稳定性是要保证的,所以作为个人日常适用这个版本足够。

插曲:debian所有的版本号代号都来自哪里?

这些代号来自哪里?

这些代号都来自皮克斯电影《玩具总动员》系列的角色。

buzz(Debian 1.1)是太空人 Buzz Lightyear(巴斯光年),

rex(Debian 1.2)是那只霸王龙,

bo(Debian 1.3)是 Bo Peep(宝贝),那个放羊的女孩,

hamm(Debian 2.0)是那个小猪储蓄罐,

slink(Debian 2.1)是 Slinky Dog,那只玩具狗,

potato(Debian 2.2)当然是 Mr. Potato(蛋头先生),

woody(Debian 3.0)是牛仔胡迪,

sarge(Debian 3.1)是绿色塑料玩具士兵的首领,

etch(Debian 4.0)是那个玩具画板(Etch-a-Sketch),

lenny(Debian 5.0)是那个玩具望远镜,

squeeze(Debian 6)是那个三只眼的外星人的名字,

wheezy(Debian 7)是那只戴着红领结的橡胶玩具企鹅,

jessie(Debian 8)是那个唱着约德尔的女牛仔,

stretch(Debian 9)是那个有八条长着吸盘的长腿的橡胶玩具章鱼,

buster(Debian 10)是安弟的宠物狗。

bullseye(Debian 11)是胡迪的玩具木马。

bookworm(Debian 12)是那个内置手电筒的、爱看书的玩具蠕虫。

trixie(Debian 13)是蓝色塑料三角龙。

sid 是破坏所有玩具的隔壁男孩。

sid 或称作 unstable 是大多数软件包最初上传到的地方。它从来不会被直接发布,因为将被发布的软件包首先需要进入 testing,然后才能进入 stable 并发布。sid 包含已经发布和尚未发布的架构的软件包。

“sid”这个名字同样来自动画电影《玩具总动员》:Sid 是破坏玩具的隔壁男孩 🙂

优点:使用“testing测试候选版本”的优点是您可以一直跟随 GNU/Linux 软件行业的最新技术,且无缝升级到最新发行版,这就是为什么你在很多bbs里看见有人回复我在使用debian testing,其实这个版本是相当稳定的,日常适用几乎没什么bug,就算大部分引起的bug也是因为软件包编译的太新引起的,系统自身的bug很少会遇到,你可以简单的理解为这个是debian的滚动发行版,虽然这不严格,也不像arch linux这样极端的更新(但也是次新级了),但是你这样理解就行,且这个是被测试过没有致命缺点的滚动发行版,不会挂滚。

硬要说缺点:testing 的安全更新不由安全团队管理,但是通常也就延迟几天就会合并。

如何将现有的版本更改成testing?

1:nano /etc/apt/sources.list              #清空里面的内容

2:#如果是AMD64位架构的CPU,复制粘贴如下源
deb http://deb.debian.org/debian/ testing main contrib non-free
deb-src http://deb.debian.org/debian/ testing main contrib non-free

    #国内网络环境用下面这个,复制粘贴。
deb https://mirrors.ustc.edu.cn/debian testing main contrib non-free
deb https://mirrors.ustc.edu.cn/debian testing-updates main contrib non-free

3:保存并关闭sources.list文件

4:apt-get update

#执行以下3条命令时,会遇到几次*** crontab (Y/I/N/O/D/Z) [default=N] ? 这样的提示,和Keep的弹框提示,因为每个人正在运行的程序不同,这些都是软件包发行商已经发布了更新版本问你是否更改的提示,我的建议,如果你什么程序都没跑,可以输入Y,如果已经有跑程序,建议默认回车,后者按TAB键到OK+回车。

5:  apt-get upgrade

6:  apt-get dist-upgrade

7:  再次用cat /etc/debian_version或者lsb_release -a查看当前debian发行代号是否已经是最新。

—-上面是安装testing版本的方法,已经完毕,现在开始介绍如何更改默认启动的内核—-
#因为各种原因,例如:早期想体验BBR3TCP算法,而安装了其它第三方mod内核,或者你自编译了其它内核安装,现在想回归到debian testing官方源里的最新内核为第一启动顺序,并以后更新内核后依然保持是最新内核为第一启动顺序,那么按照如下操作。

1:apt-cache search linux-image

2:cat /boot/grub/grub.cfg |grep menuentry

3:nano /etc/default/grub

4:将GRUB_DEFAULT=0
     #修改成
        GRUB_DEFAULT="Advanced options for Debian GNU/Linux>Debian GNU/Linux, with Linux 6.10.3-cloud-amd64"

注意:加上Advanced options for Debian GNU/Linux是因为这个是必须的“一级菜单”后面的“内核”才是二级菜单,不这样做你输入update-grub更新后会报错。

5:update-grub

6:reboot

7: 重启后,继续修改nano /etc/default/grub,把:GRUB_DEFAULT="Advanced options for Debian GNU/Linux>Debian GNU/Linux, with Linux 6.10.3-cloud-amd64"  改回:GRUB_DEFAULT=0,这样以后你apt-get upgrade or apt-get dist-upgrade更新过的内核依然是第一启动顺序延续下去。

8:update-grub

9:因为已经是testing源了,所以你的内核是非常新的,不需要再使用第三方编译的mod内核去开启BBR3,直接修改一下sysctl.conf即可。

cat > /etc/sysctl.conf << EOF

net.core.default_qdisc=fq_pie

net.ipv4.tcp_congestion_control=bbr

EOF

#注意:fq_pie即BBR3

10:最后需要注意,如果你除了BBR3,还启用其它拥塞算法,例如:TCP Brutal,那每更新一次内核,你就需要重装一次,最简单的方法就是直接:bash <(curl -fsSL https://tcp.hy2.sh/)


晕倒
感觉testing用起来没unstable好用。