Debian10 升级到 Debian11 发表于 2021-08-29 | 分类于 Linux | 暂无评论 如果你想从 Debian 9 或者更旧的版本升级到 Debian 11,请先升级到最新的 Debian 10 后再继续操作。 Debian 稳定版通常每隔两年发布一个版本,自发行后会得到为期约三年的正式支持,也就是说 Debian 11 至少会得到 5 年的后续支持,刚发布的版本可能并不完善,建议生产环境至少等到第一个小版本(11.1)后再升级。 **升级有风险,请提前备份数据;同时由于刚发布,不保证现有软件环境能正常运行,生产环境请谨慎升级。** ### 简要命令 ```shell apt update && apt upgrade -y apt --purge autoremove cp /etc/apt/sources.list /etc/apt/sources.list.bak sed -i 's|buster/updates|bullseye-security|g' /etc/apt/sources.list sed -i 's|buster|bullseye|g' /etc/apt/sources.list apt update && apt full-upgrade -y 接下来还有几个选项,升级某些特定库,恢复默认SSH配置之类的,如果你不晓得是啥,一路回车即可 注意: 如果你更改了 ssh 端口或者设置了密钥登录,最好保留SSH配置。 reboot cat /etc/os-release ``` ### 更新现有软件包 升级前先更新当前的软件包核安全补丁到最新版本: apt update && apt upgrade -y 删除未使用的依赖项: apt --purge autoremove ### 更新 sources.list 文件 接下来需要添加用于 bullseye 的源 /etc/apt/sources.list buster 替换为 bullseye buster/updates 替换为 bullseye-security。 或者直接注释原来的内容,添加: ```shell 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 ``` 国内镜像源 ```shell # 默认注释了源码镜像以提高 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 ``` 如果你需要 contrib 和 non-free 软件,可以在 main 后面添加 contrib non-free,例如: ```shell 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 ``` 这里解释一下链接最后的 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 11 更新软件包索引并升级: apt update && apt full-upgrade 会提示你是否升级,输入 Y 升级过程需要 5 到 10 分钟,具体取决于系统硬件和网络速度,过程中需要进行一些配置。 如果过程中出现 apt 的提示,可以输入q退出继续 你可能会看到有关重新启动服务或更新现有配置选项的提示。因为在升级特定库(例如 libpam、libc 和 libssl)时,由于重新启动可能会导致系统服务中断,比如下图中我选择的是yes,重启服务不需要询问,按Enter键继续: 接下来会问是否更新 /etc/sysctl.conf 文件版本,默认为 N,根据你自己的需求选择。 同样,**之后会问你是否更新 OpenSSH 配置文件,我选择的是保留当前版本,如果你更改了 ssh 端口或者设置了密钥登录,最好保留。** 完成后,建议使用 reboot 命令重新启动系统。 ### 升级完成 重新启动之后,查看当前系统版本: cat /etc/os-release 之后你可以清理旧的过时软件包,**注意,这是可选步骤**,你必须仔细检查软件包或不再需要的软件包,否则可能会破环你当前的软件环境: apt --purge autoremove apt autoclean 比如说我发现一个定时执行的 python 任务失败了,是因为原来安装的 virtualenv 也被卸载了,导致在环境中找不到依赖包,重新安装后可以正常使用。 转载自: >https://zhuanlan.zhihu.com/p/400092868