升级Debian版本操作总结

文章目录

  • 升级Debian操作过程的总结
    • 准备
    • 升级
    • 清理

升级Debian操作过程的总结

关于升级Debian的主版本,官方有非常详细的文档:https://www.debian.org/releases/stable/amd64/release-notes/ch-upgrading.html

其中关键操作为升级当前系统中的包至最新版,然后修改/etc/apt/sources.list为新版本的内容,并执行:

apt update
apt upgrade
apt dist-upgrade

当然还有其他一些事情,每次都看很麻烦,而且并不是文档中的每一步都必须,我总结其中核心思路如下。

准备

  1. 清理不必要的软件包。
    目的:减少需要下载的内容从而缩短升级时间,降低出现依赖问题的可能性。
    方法:先手动清除不必要的软件,然后参考我之前关于清理Debian/Ubuntu系统上冗余包的文章,删除掉冗余包、废弃包。简单来说就是执行下面两个命令。如果情况比较复杂(aptitude认为依赖关系复杂,无法稳妥地完全自行完成,提示用户是否要接受它计算出的一个解决方案),可以接受建议方案并再次执行直到没有包能被删除。
sudo aptitude purge "~o"
# dpkg --list |grep "^rc" | cut -d " " -f 3 | xargs sudo dpkg --purge
sudo aptitude purge "~c"
  1. 升级当前系统中的软件包。
sudo apt update
sudo apt upgrade
  1. 检查。
    强烈建议在升级前对已经安装的包进行检查,并解决所有hold的包(卸载或上网查询具体方案)。
# 检查安装的包的一致性(正常情况下无输出)
dpkg -C
# 查看无法升级(on hold)的包(正常情况下无输出)
apt-mark showhold

参考:https://linuxconfig.org/how-to-upgrade-debian-8-jessie-to-debian-9-stretch

升级

  1. 更新sources.list。
    修改/etc/apt/sources.list文件(建议提前备份)之中关于当前版本的部分为新版本的部分。通常只需修改版本名称为新的,例如升级Debian 8到Debian 9需要将jessie改为stretch。
    也可以直接使用官网提供的版本进行覆盖:https://wiki.debian.org/SourcesList 。
# 修改sources.list
sudo sed -i 's/jessie/stretch/g' /etc/apt/sources.list
  1. 升级。
    先更新包数据库,然后更新外围软件包,最后更新关键包。
    需要有人值守:因为部分软件的配置文件会出现变化,需要手动确认使用哪个版本。
    切记:这个过程中不要中断,否则可能导致包关系异常或包管理系统损坏。
sudo apt update
sudo apt upgrade
sudo apt dist-upgrade
  1. 重启。
    通常新版本会更使用新的内核,重启是为了使用新的内核image,同时方便删除旧的版本。

清理

  1. 清理作废的包。
    升级后,很多旧版本的包将不再需要。除了apt-get autoremove可以删除的,还有一些需要使用更底层的dpkg工具进行删除。
sudo apt-get autoremove
sudo aptitude purge "~o"
# dpkg --list |grep "^rc" | cut -d " " -f 3 | xargs sudo dpkg --purge
sudo aptitude purge "~c"
  1. 清理下载缓存。
sudo apt-get clean

你可能感兴趣的:(linux,杂项)