How to upgrade from debian bullseye to bookworm
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