一、系统更新(安装最新安全补丁与功能改进)
更新本地软件包索引
执行sudo apt update命令,从Debian官方软件源获取最新的软件包版本信息,确保系统识别到可用的更新。这一步是后续升级的前提,不会修改已安装的软件。
安装可用的更新
运行sudo apt upgrade(或sudo apt-get upgrade),安装所有已识别可更新的软件包(如安全补丁、bug 修复)。此命令会保留现有配置文件,仅替换旧版本的二进制文件。
处理依赖关系(可选但推荐)
若需解决软件包依赖关系的变更(如某些软件包需要移除旧依赖或安装新依赖),可使用sudo apt full-upgrade(或sudo apt-get dist-upgrade)。该命令会智能调整软件包依赖,确保系统一致性,通常用于完整升级前的准备。
清理无用软件包(可选)
升级后,运行sudo apt autoremove移除不再需要的依赖包(如被其他软件包替代的旧库),释放磁盘空间;sudo apt clean可清除本地缓存的软件包文件(位于/var/cache/apt/archives/),进一步节省空间。
二、系统升级(升级到新版本,如Debian 11→12)
前置准备:备份重要数据
升级前务必备份个人文件(如文档、照片)、配置文件(如/etc/目录下的自定义配置)及数据库(如MySQL、PostgreSQL)。可使用外部存储设备或云服务备份,避免升级失败导致数据丢失。
修改软件源为新版
编辑/etc/apt/sources.list文件(或/etc/apt/sources.list.d/目录下的第三方源文件),将当前版本代号替换为目标版本代号。例如,从Debian 11(Bullseye)升级到12(Bookworm),可使用以下命令批量替换:
sudo sed -i 's/bullseye/bookworm/g' /etc/apt/sources.list
若存在第三方源(如第三方软件仓库),建议暂时禁用(在文件名前添加.disabled后缀),避免兼容性问题。
更新软件包列表
执行sudo apt update,同步新版本软件源的软件包信息,确保系统能获取到新版本的可用包。
执行系统升级
运行sudo apt full-upgrade(或sudo apt-get dist-upgrade),升级所有已安装的软件包到新版本。此命令会处理依赖关系的重大变更(如内核升级、核心组件替换),可能需要重启部分服务或系统。
重启系统
升级完成后,执行sudo reboot重启系统,使内核及系统服务的更新生效。重启后,系统将加载新版本的内核及服务。
验证升级结果
重启后,运行lsb_release -a(或cat /etc/os-release),查看Description字段,确认系统已升级到目标版本(如Debian GNU/Linux 12 (bookworm))。
三、可选:配置自动安全更新 为减少手动维护工作量,可启用自动安全更新,及时安装安全补丁,提升系统安全性。
安装unattended-upgrades
运行sudo apt install unattended-upgrades -y,安装自动更新工具。
启用自动更新
执行sudo dpkg-reconfigure unattended-upgrades,在弹出的对话框中选择“Yes”,启用自动安装安全更新的功能。
测试自动更新
运行sudo unattended-upgrade --dry-run,模拟自动更新过程,查看将要执行的操作(如安装哪些补丁、移除哪些包),确认配置正确。
查看自动更新状态
使用sudo systemctl status apt-daily.timer(每日检查更新)和sudo systemctl status apt-daily-upgrade.timer(每日安装安全更新)命令,查看自动更新的定时任务是否启用。
注意事项
/usr/share/doc/apt/html/upgrading.html),了解特定版本的升级注意事项。