Contents

Upgrade_to_debian12_from_debian11

从 Debian 11(bullseye) 无感升级到 Debian 12(bookworm)

升级之前

  • 1 停止所有 Docker 容器
  • 2 停止 Nginx、Cloudflare Tunnel 等服务
  • 3 备份重要的数据,包括但不限于 Docker 容器数据卷、数据库、配置文件等等,准备停机和服务中断后的处理
  • 4 不能跨多个大版本升级,确保现在运行的操作系统是 Debian 11.x,更新当前的软件包
1
sudo apt update && sudo apt upgrade -y
  • 5 列出非 Debian 默认源软件包,确认它们的 APT 源都有了 bookworm 的支持,可直接替换就行
1
2
3
apt list '?narrow(?installed, ?not(?origin(Debian)))'
#  若它们的 APT 源都有了 bookworm 的支持,直接替换就行
sudo sed -i 's/bullseye/bookworm/g' /etc/apt/sources.list.d/*.list
  • 6 确保软件包 gpgv 已经安装
1
sudo apt install -y gpgv
  • 7 验证所有软件包都是可升级状态,正常情况应该输出为空
1
sudo dpkg --audit
  • 8 确保没有软件包是 hold 状态2,否则请遵循 Debian 12 发行说明手动处理
1
sudo apt-mark showhold
  • 9 更改 Debian 软件源为 bookworm
1
sudo sed -i 's/bullseye/bookworm/g' /etc/apt/sources.list

开始升级

  • 更新软件源
1
sudo apt update
  • 先进行最小系统升级
1
sudo apt upgrade --without-new-pkgs
  • 没问题的话开始进行全面升级,会下载好几百 MB 文件,下载速度取决于服务器网络带宽
1
sudo apt full-upgrade
  • 如果修改过 SSH 配置文件,出现提示时,请选择保留本地配置
  • 修改过 GRUB 配置文件,也会出现类似的提示,如非必要建议更新该配置
  • 全面升级结束后,重新启动
1
sudo reboot

升级之后

  • 列出已删除的软件包
1
apt list '~c'
  • 清理已删除的软件包
1
sudo apt purge '~c'
  • 同理,清理已过时软件包 ** 这一步非常危险!过时软件包(包括配置文件)都会被删除!**
1
&& sudo apt purge '~o'
  • 完成