升级Ubuntu发行版

本文介绍如何将Ubuntu Server或Ubuntu云镜像升级到下一个主要发行版。这与日常的软件更新不同。

建议运行长期支持(LTS)发行版:它提供5年的标准支持与安全更新,而中间发行版仅获得9个月支持。

LTS发行版最初的标准支持期结束后,可以通过Ubuntu Pro订阅获得延长维护,再增加5年覆盖;最多5台机器可以免费使用。请进一步了解你所用发行版的发行生命周期与支持期限。

理解升级路径

只能从一个LTS发行版直接升级到顺序上的下一个LTS发行版。例如,Ubuntu 16.04 LTS可以升级到Ubuntu 18.04 LTS,但不能跳过发行版,例如直接从16.04 LTS跳到20.04 LTS。若需升级到更晚的LTS,必须分阶段进行:先到18.04 LTS,再到20.04 LTS,依此类推。

升级前检查清单

开始主要发行版升级之前,应准备好系统,以确保平稳过渡。此步骤必不可少,需要检查以下事项:

  • 查看发行说明:务必阅读目标Ubuntu版本的发行说明,可以在Ubuntu Wiki发行版页面找到。

  • 完整更新当前系统:发行版升级要求当前系统已安装所有最新更新。这是一次完整的软件包升级:apt update刷新软件包索引数据库;apt dist-upgrade下载并安装已安装软件包的最新版本,引入新依赖、更新现有软件包,必要时移除软件包,确保它们均处于最新版本。分阶段推送的软件包也可能阻止发行版升级,因此也需要安装,详见分阶段更新说明。

    1. 运行以下命令,确保一切已更新:

      $

      sudo apt update

      $

      sudo apt dist-upgrade -o APT::Get::Always-Include-Phased-Updates=true

    2. 确认两个命令均成功完成,并且没有更多可用更新。

    3. 应用所有更新后,可能需要重启系统。发行版升级流程会告知是否需要,也可以提前手动检查:若文件/run/reboot-required存在,则需要重启。

  • 检查可用空间:发行版升级需要下载数百个新软件包,可能占用数GB空间。请确保磁盘有足够的可用空间。

  • 为升级预留时间:这是交互过程,升级有时会停下来提问,因此应监控过程并随时回答。

  • 了解第三方软件仓库:发行版升级期间,第三方仓库和个人软件包归档(PPA)会被禁用。来自这些源的已安装软件不会被移除,但它们是升级问题最常见的原因。准备好在升级后重新启用这些源,或寻找更新版本。

  • 备份所有数据:升级通常是安全的,但仍可能发生故障。必须将数据安全地复制到备份位置,以便出现问题时恢复。

升级系统

建议在Server版本和云镜像上使用do-release-upgrade命令升级系统。它可以处理发行版之间有时需要的系统配置更改。

运行以下命令开始升级:

$

sudo do-release-upgrade

注意

通过-d选项可以升级到Ubuntu开发版,但不建议在生产环境使用开发版或这个选项。

从一个LTS升级到下一个LTS,要等目标发行版的首个点版本发布后才会开放。例如,Ubuntu 18.04 LTS要在20.04.1发布后才能升级到Ubuntu 20.04 LTS。如果希望在首个点版本之前升级,例如在部分机器上评估LTS升级,可以使用-d强制升级。

升级前摘要

在更改任何内容前,do-release-upgrade会先检查系统是否准备就绪,并展示升级摘要。接受这些更改后,系统便开始更新软件包:

Do you want to start the upgrade?  


5 installed packages are no longer supported by Canonical. You can  
still get support from the community.  

4 packages are going to be removed. 117 new packages are going to be  
installed. 424 packages are going to be upgraded.  

You have to download a total of 262 M. This download will take about  
33 minutes with a 1Mbit DSL connection and about 10 hours with a 56k  
modem.  

Fetching and installing the upgrade can take several hours. Once the  
download has finished, the process cannot be canceled.  

Continue [yN]  Details [d]

配置更改

升级过程中,可能出现提示,要求决定如何处理软件包更新。当现有配置文件(例如被用户修改过的文件)与软件包提供的新配置文件不同时,就会出现这种提示。下面是一个例子:

Configuration file '/etc/ssh/ssh_config'
 ==> Modified (by you or by a script) since installation.
 ==> Package distributor has shipped an updated version.
   What would you like to do about it ?  Your options are:
    Y or I  : install the package maintainer's version
    N or O  : keep your currently-installed version
      D     : show the differences between the versions
      Z     : start a shell to examine the situation
 The default action is to keep your current version.
*** ssh_config (Y/I/N/O/D/Z) [default=N] ?

应查看两个文件的差异后再决定。默认响应是保留当前文件。不过某些情况下,例如/boot/grub/menu.lst,必须接受新版本,系统才能使用新内核正常启动。

移除过时的软件包

所有软件包更新后,可以选择移除不再需要的过时软件包:

Remove obsolete packages?  


30 packages are going to be removed.  

Continue [yN]  Details [d]

重启

最后,升级完成后会提示重启。在执行这次重启之前,系统还不能视为完成升级。

System upgrade is complete.

Restart required  

To finish the upgrade, a restart is required.  
If you select 'y' the system will be restarted.  

Continue [yN]

进一步阅读


原文:升级Ubuntu发行版;作者:Canonical与Ubuntu Server文档贡献者。版本或日期:2026-07-06。原文及源码权利归相应权利人所有。

© 版权声明
THE END
喜欢就支持一下吧
点赞0 分享
评论 抢沙发

请登录后发表评论

    暂无评论内容