将Debian10升级到Debian11的过程记录

今天给一个客户从Debian10升级到12,记录一下折腾的过程

方法一

通过运行以下命令确认 Debian 10 代号,Debian 10 的代号为 buster

lsb_release -a

输出差不多为:

No LSB modules are available.
Distributor ID: Debian
Description: Debian GNU/Linux 10 (buster)
Release: 10
Codename: buster

将源列表中的所有 buster 条目更改为 Bullseye,这是 Debian 11 的代号。将原始配置文件备份到您的主目录

sudo cp /etc/apt/sources.list ~/sources.bak
sudo cp -r /etc/apt/sources.list.d/ ~/sources.list.d.bak

在编辑器中打开 /etc/apt/sources.list

sudo nano /etc/apt/sources.list

显示:

deb http://deb.debian.org/debian/ buster main
deb-src http://deb.debian.org/debian/ buster main

deb http://security.debian.org/debian-security buster/updates main
deb-src http://security.debian.org/debian-security buster/updates main

# buster-updates, previously known as 'volatile'
deb http://deb.debian.org/debian/ buster-updates main
deb-src http://deb.debian.org/debian/ buster-updates main

更改为:

deb http://deb.debian.org/debian bullseye main
deb-src http://deb.debian.org/debian bullseye main

deb http://security.debian.org/ bullseye-security main
deb-src http://security.debian.org/ bullseye-security main

deb http://deb.debian.org/debian bullseye-updates main
deb-src http://deb.debian.org/debian bullseye-updates main

然后保存退出

输入以下内容,开始更新:

sudo apt update
sudo apt upgrade --without-new-pkgs

更新完毕,会提示让你reboot重启一下

我们reboot重启过后,输入:

lsb_release -a

方法二

1.更新现有软件包

升级前先更新当前的软件包核安全补丁到最新版本:

apt update && apt upgrade -y

删除未使用的依赖项:

apt --purge autoremove

2.更新 sources.list 文件

接下来需要添加用于 bullseye 的源,将 /etc/apt/sources.list 中的 buster 替换为 bullseyebuster/updates 替换为 bullseye-security
或者直接注释原来的内容,添加:

deb http://deb.debian.org/debian bullseye main
deb-src http://deb.debian.org/debian bullseye main

deb http://deb.debian.org/debian-security/ bullseye-security main
deb-src http://deb.debian.org/debian-security/ bullseye-security main

deb http://deb.debian.org/debian bullseye-updates main
deb-src http://deb.debian.org/debian bullseye-updates main

如果你需要 contrib 和 non-free 软件,可以在 main 后面添加 contrib non-free,例如:

deb http://deb.debian.org/debian bullseye main contrib non-free
deb-src http://deb.debian.org/debian bullseye main contrib non-free

deb http://deb.debian.org/debian-security/ bullseye-security main contrib non-free
deb-src http://deb.debian.org/debian-security/ bullseye-security main contrib non-free

deb http://deb.debian.org/debian bullseye-updates main contrib non-free
deb-src http://deb.debian.org/debian bullseye-updates main contrib non-free

如果你需要 Backports(从测试版和不稳定版重新编译的包),可以在最后添加:

deb http://deb.debian.org/debian bullseye-backports main contrib non-free
deb-src http://deb.debian.org/debian bullseye-backports main contrib non-free

这里解释一下链接最后的 main、contrib、和 non-free 的意思和区别,这些参数是 Debian 档案库的有效档案库范围名称。因为 Debian 是非营利组织,但是组织架构严谨,有一套完善的软件管理方式,基于其对软件 free 度的一种坚持,对不同版权软件包的录入有一些限定。

  • main,软件包数量 61595,遵从 Debian 自由软件指导方针,并且不依赖于 non-free;
  • contrib,软件包数量 349,遵从 Debian 自由软件指导方针,但依赖于 non-free;
  • non-free,软件包数量 772,不遵从 Debian 自由软件指导方针。

简单来说,Debian 是 100% 的自由软件,所以系统中默认只安装自由软件,而 main 中只提供自由软件,而使用 non-free 和 contrib 中的软件包会失去自由(这些软件包无法访问源代码,Debian 不能进行完全的支持),你可以根据自己的需要自己选择。详细说明可以参考官方的 Debian 软件包管理 这篇文档。

以上的源为官方源,国内更新可能或比较慢,你可以找国内镜像替换,例如使用清华大学的源镜像

# 默认注释了源码镜像以提高 apt update 速度,如有需要可自行取消注释
deb https://mirrors.tuna.tsinghua.edu.cn/debian/ bullseye main contrib non-free
# deb-src https://mirrors.tuna.tsinghua.edu.cn/debian/ bullseye main contrib non-free

deb https://mirrors.tuna.tsinghua.edu.cn/debian/ bullseye-updates main contrib non-free
# deb-src https://mirrors.tuna.tsinghua.edu.cn/debian/ bullseye-updates main contrib non-free

deb https://mirrors.tuna.tsinghua.edu.cn/debian-security bullseye-security main contrib non-free
# deb-src https://mirrors.tuna.tsinghua.edu.cn/debian-security bullseye-security main contrib non-free

3.升级到 Debian 11

保存后退出,更新软件包索引并升级:

apt update && apt full-upgrade

会提示你是否升级,输入 Y

升级过程需要 5 到 10 分钟,具体取决于系统硬件和网络速度,过程中需要进行一些配置。

如果过程中出现 apt 的提示,可以输入q退出继续:

你可能会看到有关重新启动服务或更新现有配置选项的提示。因为在升级特定库(例如 libpam、libc 和 libssl)时,由于重新启动可能会导致系统服务中断,比如下图中我选择的是yes,重启服务不需要询问,按Enter键继续:

接下来会问是否更新 /etc/sysctl.conf 文件版本,默认为 N,根据你自己的需求选择。

同样,之后会问你是否更新 OpenSSH 配置文件,我选择的是保留当前版本,如果你更改了 ssh 端口或者设置了密钥登录,最好保留

完成后,建议使用 reboot 命令重新启动系统。

4.升级完成

重新启动之后,查看当前系统版本:

cat /etc/os-release
将Debian10升级到Debian11的过程记录

原创文章,作者:陌涛,如若转载,请注明出处:https://imotao.com/8921.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
陌涛陌涛
上一篇 2025年6月10日 上午8:27
下一篇 2025年6月29日 下午8:21

相关推荐

发表回复

您的邮箱地址不会被公开。 必填项已用 * 标注

这个站点使用 Akismet 来减少垃圾评论。了解你的评论数据如何被处理

docker镜像已更新为 https://0-docker.nat.tf/