本文介绍如何将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下载并安装已安装软件包的最新版本,引入新依赖、更新现有软件包,必要时移除软件包,确保它们均处于最新版本。分阶段推送的软件包也可能阻止发行版升级,因此也需要安装,详见分阶段更新说明。-
运行以下命令,确保一切已更新:
$sudo apt update$sudo apt dist-upgrade -o APT::Get::Always-Include-Phased-Updates=true -
确认两个命令均成功完成,并且没有更多可用更新。
-
应用所有更新后,可能需要重启系统。发行版升级流程会告知是否需要,也可以提前手动检查:若文件
/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。原文及源码权利归相应权利人所有。











暂无评论内容