How to upgrade from debian bullseye to bookworm

From 清冽之泉
Jump to navigation Jump to search

改过内核的 KVM 云主机升级难。仅支持从 Debian 11 升 12,不支持从 10 升 12。想要不出事,理论上不该在生产环境升级,应当在复刻出的测试环境升级,没出问题再在生产环境实践。

如果有任何需要修复的东西,最好确保您的 APT source-list 文件仍然指向 bullseye。

做好防灾

全盘备份
clonezilla
dd
timeshift
rsnapshot
重点备份
/etc
/var/lib/dpkg
/var/lib/apt/extended_states
/home 目录下的 dotfile
浏览器账密
dpkg --get-selections '*' # 此命令的输出
灾难救援
救援模式
liveinstall 的 chroot
initramfs-tools 软件包有一定作用

检查环境

  • 要有足够硬盘容量
  • 已安装 gpgv
  • 有可能地删除非官方源软件
  • 软件依赖无异常
sudo dpkg --audit # 包完整性验证,返回值应该为空
sudo apt-mark showhold # 包 hold 状态验证,返回值应该为空
apt list '?narrow(?installed, ?not(?origin(Debian)))' # 检查所有非自带包
apt list '~o' # 显示过时软件包,其实有的是自己手动安装的包
apt purge '~o' # 是否移除看情况

腾出空间

sudo apt -o APT::Get::Trivial-Only=true full-upgrade # 测试升级所需空间
sudo find /etc -name '*.dpkg-*' -o -name '*.ucf-*' -o -name '*.merge-error' # 查找并清除残留文件
sudo apt autoremove

更换新源

软件仓有四个名字:

  • bookworm 普通软件
  • bookworm-security 安全相关软件
  • bookworm-updates 更新相关软件
  • bookworm-backports 为了用而勉强编译的软件,可能有依赖问题,可能被舍弃,也可能被变为普通软件

每仓有四个级别:

  • main 自由软件
  • contrib 想自由但依赖非自由软件
  • no-free 非自由软件
  • non-free-firmware 难舍弃的商业固件类
sudo apt install apt-transport-https ca-certificates
deb https://mirrors.tuna.tsinghua.edu.cn/debian/ bookworm main non-free-firmware
# deb-src https://mirrors.tuna.tsinghua.edu.cn/debian/ bookworm main non-free-firmware

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

deb https://security.debian.org/debian-security bookworm-security main non-free-firmware
# deb-src https://security.debian.org/debian-security bookworm-security main non-free-firmware

更新升级

sudo apt update

sudo apt upgrade --without-new-pkgs # 最小化升级
sudo apt upgrade # 保守升级,不删现存
sudo apt full-upgrade # 激进升级,可能为全局而删现存

sudo apt clean # 删缓存文件
sudo apt autoclean # 去除很久没用的大文件
sudo apt autoremove # 去除不再需要的依赖

apt list '~c' # 列出已删除的软件包
apt purge '~c' # 清除已删除的软件包

systemctl reboot