2.3.5. 全面的系统升级

[注意]注意

当你迁移到新的发行版的时候,虽然正如下面所描述的那样,Debian 是可升级的,但是你还是应该考虑纯净的安装新的系统。这给了你机会去移除废弃的软件包同时还可以接触到最新软件包的完美集合体。当然,在做迁移之前,你也应该对你的系统做完整的备份,并把它移到安全的地方去(查看第 10.2 节 “备份和恢复”)。“我”也建议用不同的分区做另外一个启动项,来实现平稳的升级。

你可以通过改变 “/etc/apt/sources.list“ 的内容使之指向新的发行版所在地址的方法来进行系统的全面升级,然后运行 “apt update; apt dist-upgrade“ 命令。

stable 升级到 testing 或者 unstable,你应该用 “bullseye“ 或者 “sid“ 替换 “/etc/apt/sources.list“ 文件里的 “buster“,参考 第 2.1.4 节 “Debian 档案库基础”

事实上,由于一些软件包版本变迁的问题,你可能会遇到一些困难,主要是由于软件包的依赖问题。升级之后的差异越大,你越有可能遇到麻烦。在新版本发行后,系统从旧的 stable 过渡到新的 stable,你可以查看 Release Notes 然后按照里面的步骤去做,来尽可能的减少麻烦。

在它正式发布之前,你决定要从先前的 stable 迁移到将要发布的 testing,这里没有 Release Notes 可以帮到你。 在前一个 stable 发布以后, stable 发行版跟将要发布的 testing 发行版之间的差异可能变得相当大同时也使得升级系统变得更加的复杂。

在全面升级系统的时候,你应该谨慎的操作,同时你也应该从邮件列表中获取最新的资料然后根据你的常识作出正确的判断。

  1. 查看先前的“发行说明”。

  2. 备份整个系统(尤其是数据和配置信息)。

  3. 当 bootloader 坏了的时候,手边应该有可以引导电脑启动的存储介质。

  4. 事先通知系统上的用户。

  5. 用 script(1) 记录升级的过程。

  6. 用 “unmarkauto” 命令来保留你想要的软件包,例如 “aptitude unmarkauto vim“ 这个命令是用来防止移除vim这个软件的。

  7. 为了减少软件包之间可能会发生的冲突,应该尽量减少要安装的软件包的数目,例如,移除桌面环境这个软件包。

  8. 移除 “/etc/apt/preferences“ 文件(禁用apt-pinning)。

  9. 试着一步步的升级: oldstablestabletestingunstable.

  10. 升级 “/etc/apt/sources.list“ 文件,使其指向新的档案库然后运行 “aptitude update“ 命令。

  11. 可选的安装选项,首先是新的 core packages,例如 “aptitude install perl“。

  12. 运行 “apt-get -s dist-upgrade“ 命令来评估升级造成的影响。

  13. 最后运行 “apt-get dist-upgrade“ 命令。

[小心]小心

stable 版本升级的时候,跳过主要的 Debian 发行版是不明智的。

[小心]小心

在先前的“发行手册”里, GCC, Linux Kernel, initrd-tools, Glibc, Perl, APT tool chain 等等,有一些关于系统全面升级的重要注意事项。

关于 unstable 版本的日常升级,查看 第 2.4.3 节 “预防软件包故障”