我可以顺利地从一个LTS版本升级到下一个LTS版本吗?

问题是关于Ubuntu发布过程的。是否预计从n到n+1的版本会进行迁移?
假设我们有一台安装了Ubuntu 14.04 LTS的服务器。 通过apt-get upgrade命令,它能顺利升级到Ubuntu 16.04 LTS吗?
假设条件如下:
- 范围是软件 - 因此我们假设给定的硬件在两个版本(升级前和升级后)上都得到支持 - 这就是为什么在升级之前总是要求您备份以便在失败的情况下能够恢复的原因

7简短回答:是的,您可以从LTS版本升级到LTS版本。 - Thomas Ward
3为什么你会假设自己不能呢? - Braiam
4我对Ubuntu LTS服务器没有经验,我过去使用过Arch、Slackware、SuSE和其他发行版...在某些情况下,我遇到了从版本n.x迁移到(n+1).y需要重新安装的情况,或者非常痛苦(导致流汗、眼泪和鲜血后重新安装)。因此,在开始之前,我想问一下,平稳过渡只适用于正常发布还是也适用于LTS发布。 - Grzegorz Wierzowiecki
2请注意,如果您在LTS版本不再受支持后延迟太久(这是不应该的,因为安全更新),升级过程可能会变得不那么顺利。具体操作可参考此链接:http://askubuntu.com/questions/91815/how-to-install-software-or-upgrade-from-an-old-unsupported-release?rq=1 - Zach Lipton
5@GrzegorzWierzowiecki,澄清一下:Arch是一个滚动发布系统,所以一旦安装完成后就没有版本的概念了。只需运行一个pacman命令即可获取最新版本。Arch没有具体的发行版本;他们只会定期发布一系列的安装程序。 - user459652
我曾经觉得这个东西非常靠不住,你最好重新安装整个系统,但多年来我已经没有见到过这种情况了,现在一切都变得无缝流畅且非常简单。 - Sammaye
@jdv 或许我有时会走捷径。没错,你说的没错,Arch是滚动更新的。我觉得类比一下的话,如果你小幅度地升级Arch,整个过程会非常顺利。但是如果你长时间不开机然后再尝试更新,情况可能就不同了。我曾经遇到过这样的情况。对我来说,类比就是,根据我的经验,断电后进行升级的成功率要低于小幅度的增量升级。而且我不知道在Ubuntu中,n.x -> (n+1).y 被认为是足够小的增量,就像 n.x -> n.(x+1) 一样...无论如何,感谢你的反馈,对读者应该很有帮助! - Grzegorz Wierzowiecki
@GrzegorzWierzowiecki,是的,Arch要求你在接受大型升级之前阅读博客和论坛。这完全与LTS相反。我们用旧的库和可能过时的应用程序来换取更多关于升级的保证。LTS注重稳定性和升级的便利性,如下所述。 - user459652
@jdv 谢谢!感谢所有的回答和评论,我完全相信Ubuntu Server LTS非常适合我心中所想的一些用例(比如希望服务器、个人项目、自制NAS等)。谢谢大家! :) - Grzegorz Wierzowiecki
1接受的回答是错误的。答案是否定的,大量的硬件尤其是Radeon硬件不受支持。 - user200348
@PhillipMoxley 提供了关于备份的澄清和提醒。 - Grzegorz Wierzowiecki
10个回答

无论是服务器还是桌面版,您都可以通过LTS版本顺利升级。不管您使用的是什么,您只需要使用以下命令即可:
对于桌面版:
sudo do-release-upgrade

对于服务器版本:

sudo apt-get install update-manager-core
sudo do-release-upgrade

请注意:在进行真正的升级之前,请务必在您使用的计算机上使用LiveCD测试目标LTS版本,以确保一切正常运行。

1反正,难道不应该是 sudo apt-get dist-upgrade 吗?还是那个命令是用来做别的事情的? - SuperSluether
7dist-upgrade 更新整个系统,应用程序、内核等所有内容到最新可用版本,但不更新发行版。如果您喜欢新的内核和其他东西,应该执行 dist-upgrade,而不是仅针对该版本进行内核更新、应用程序和安全性的更新管理器。do-release-upgrade 将升级到下一个发行版。 - Mark Kirby
2将Flimm的回答与你的回答合并,并附上你的来源,我会点赞这个回答。 - dcorking
1是的,你可以像下面的回答所说的那样升级,但是你必须使用这个答案中的命令来实际升级Ubuntu版本。 - Dominic Hayes
@DominicHayes,要求您编辑自己的答案,而不是别人的。 - guntbert
1好的 @DominicHayes,我改变了我的投票,请在你编辑时别忘了留言,没有人会收到通知。 - Mark Kirby
我认为这应该是被接受的答案,因为它实际上向你展示了如何完成它。而且它有效...我已经测试过了。 - McGafter
关于流畅性:我按照这个建议操作,结果现在遇到了内核崩溃的问题。而且在AskUbuntu上也有很多关于从14.04升级到16.04的类似问题报告。 - Skippy le Grand Gourou
1Skippy:一直以来都存在这种风险,所以社区过去建议先检查目标Ubuntu版本的LiveCD,而且在LTS升级中偶尔也会发生这种情况,可悲的是我能想到的唯一解决办法就是使用Ubuntu 16.04 LiveCD,如果能正常工作,就将其安装到“/”分区中的高级分区设置选项中(安装方法建议的最后选项)(考虑到你给“/home”单独分了一个分区,这应该不会太麻烦,否则你需要从LiveCD备份/home文件夹)。 - Dominic Hayes

是的,你可以从一个Ubuntu LTS版本升级到下一个版本,跳过中间的非LTS版本。它就是为了这样工作的,并且经过了测试。

6上次我从一个LTS版本升级到下一个版本时,我不得不等待第一个点发布。这个限制现在解除了吗? - Gerald Schneider
@GeraldSchneider 这可能是一个新的问题,16.04即将到来,这将非常相关。 - Mark Kirby
8@GeraldSchneider LTS发布的目标(无意冒犯)是稳定性,因此在发布点升级之前不会启用升级通知。但是您可以使用do-release-upgrade(或其中一个标志)进行提前升级,具体过程我忘记了。更多信息请参阅:http://askubuntu.com/questions/125392/why-is-no-new-release-found-when-upgrading-from-a-lts-to-the-next/125492#125492 - Seth
@Seth 使用do-release-upgrade -d命令,你可以在不等待16.04.1 "point release"的情况下,从14.04直接升级到16.04。我前几天刚刚这样做了。当然,前提是你的/etc/update-manager/release-upgrades文件中包含默认的 Prompt=lts设置。 - Tyler
1现在16.04.1已经发布了,但我仍然无法在我的Ubuntu服务器14.04 LTS上进行do-release-upgrade。我的问题在这里 - http://askubuntu.com/questions/801488/how-do-i-upgrade-from-14-04-lts-server-to-16-04-1 - Lord Loh.
14.04至16.04版本不适用于Radeon硬件。 - user200348
2虽然本来是打算这样工作的,但是这个网站上却有很多关于14.04升级到16.04失败的问题。我不认为"内核恐慌"是一个"顺利升级"的说法... - Skippy le Grand Gourou
3通常情况下,如果您没有使用标准的Ubuntu内核,并且使用了任何“污染内核”的驱动程序(例如大多数显卡驱动程序、一些网络驱动程序和其他第三方应用程序),就会发生内核崩溃。当然也有一些情况不太顺利,但是如果在升级之前禁用第三方软件源/PPA并使用驱动程序工具禁用/卸载专有显卡驱动程序,通常不会遇到太多问题。 - dragon788
看起来,因为do-release-upgrade声称升级需要“几个小时”,重新安装似乎是我台式机的更好选择。从光盘安装通常只需要20-40分钟,这是我最近几次安装的时间。 - Adam.at.Epsilon
@Adam.at.Epsilon - 如果“小时”指的是这里下面的回答中的信息,请考虑到这些回答是旧的,与处理速度较低的旧CPU相关。 - cipricus

我相信了其他的答案,并继续使用do-release-upgrade从最新的14.04版本升级到16.04版本。现在我面临着内核恐慌的问题。
以下是其他相关的问题(不是我的),大多数没有得到解答: 因此,对于问题“我能顺利升级从一个LTS到下一个LTS版本吗?”的真正答案,尤其是当应用于14.04->16.04的升级,显然不是“是”的——大多数甚至所有的回答在这方面都是错误的。
最好的情况是,你可能会顺利升级。

你有没有尝试在启动时选择不同的内核?根据我的经验,通常这种情况发生在长时间未进行更新升级,然后在升级过程中/boot分区满了的情况下。然而,我在正常升级过程中也遇到了类似的问题。 (因此,我认为这只是“标准升级”部分的问题,而不是完整系统升级的特定问题)。 然后,这些建议 会有所帮助。我不确定这是否适用于你的情况,但我希望能对你有所帮助。 - Grzegorz Wierzowiecki
@GrzegorzWierzowiecki 谢谢你的建议,但在我的情况下,没有希望恢复一个干净的设置:初始化系统已经消失,apt的依赖树完全破裂。(而且我事先确保有足够的可用空间。) - Skippy le Grand Gourou
很遗憾听到这个消息。有一天,我在其他发行版上成功处理了类似的情况,通过使用Live CD/DVD进行恢复,并进行了大量的手动清理工作。不确定是否会再次尝试这种方法,更可能是备份剩下的内容并从头开始。祝好运! - Grzegorz Wierzowiecki
@GrzegorzWierzowiecki 在一个单独的分区上拥有/home目录让它看起来不那么令人沮丧。;-) - Skippy le Grand Gourou
和 /etc 和 /usr ... ;) 一切都取决于你的自定义设置存放/到达的位置。 - Grzegorz Wierzowiecki

你可以从一个LTS版本升级到另一个版本。顺利与否取决于情况。
如果你只是指操作系统,这个过程经过测试,如果你的硬件兼容,一切都会很顺利。
但不要忘记,你可能安装了自己的软件/脚本等或者有其他配置在新版本中可能存在未满足的依赖关系。(例如:你可能有一些包含在较新版本中被删除的弃用函数的脚本)

从14.04升级到16.04不是自动的,当16.04在四月份发布时,但在七月份第一个点版本16.04.1将可用,并且所有14.04用户将被提供升级。

然而,如果您想立即升级,您不需要先升级到中间版本。只需在终端中运行以下命令(并输入密码):

sudo update-manager -d

您将会被提供14.04升级到16.04的选项,而无需等待16.04.1版本。
Ubuntu不自动向14.04用户提供16.04的原因很简单:这些用户正在使用非常稳定的LTS版本,如果他们立即升级到16.04,可能会遇到未发现的错误。任何在16.04中发现的重要错误应该会在16.04.1版本中修复,因此LTS用户更少遇到新版本中的错误的机会。

1尝试从14.04升级到16.04使用了update-manager -d命令。导致界面崩溃。 - AlikElzin-kilaka
sudo: update-manager: command not found - Matt

只是关于从旧的非LTS版本升级的一点小提示:我曾经卡在13.04(Raring Ringtail,非LTS)上,想要升级。首先升级到14.04 LTS(Trusty Tahr),然后再升级到16.04(Xenial Xerus)。
要从13.04升级(在2016年9月!),你需要进行一些技巧操作,这个人有一个方法:http://tuxtrix.com/2014/03/upgrade-from-ubuntu-1304-to-ubuntu-1404.html 对我来说有效!
(提示:在控制台(ctrl+alt+F1)中运行升级,而不是在桌面GUI中。在升级过程中,X或其他东西可能会卡住,我不得不稍微费点劲才能完成升级..)

这是我进行版本升级的方法,每次都很有效。现在在18.04中,我将尝试进行LTS升级。我目前使用的是16.04版本。 - userDepth

关于LTS系统的评论和链接

选择Ubuntu版本对于首次安装和升级到新版本可能会很困难和混乱。本答案将重点介绍如何找到剩余支持时间最长(直到“生命周期结束”)的版本,通常是LTS版本的第一个点发布版本(LTS代表长期支持)。

目前,当这篇文章编写时,最新的LTS版本是Ubuntu 16.04.1 LTS,并且其iso文件无法通过“常规”链接找到。

支持间隔的详细描述和图表可以在此链接中找到:

www.ubuntu.com/info/release-end-of-life

第二、第三和第四个点发布的内核系列与第一个点发布的内核系列不同,并且不受长期支持。硬件启用堆栈必须/将根据这些链接进行升级。

wiki.ubuntu.com/Kernel/LTSEnablementStack

wiki.ubuntu.com/Kernel/RollingLTSEnablementStack

为了保持一切都是最新的(包括内核的安全更新),这是有风险的,我不建议你这样做。有很多失败的报告。如果你在AskUbuntu网页浏览器窗口的右上角附近的“搜索问答”框中输入HWE并按Enter键,你可以找到其中一些问题。
第五个点版本的内核系列是下一个LTS版本的内核,并且有长期支持。
对于一个稳定可靠的系统,我建议以下策略。
  • 一个好的备份例程对于所有你想要保留的文件来说,是一个稳定可靠系统的基础。这包括你的个人文件以及整个或部分操作系统、安装的应用程序和调整。

  • 安装并使用在偶数年4月发布的LTS版本,如2014年、2016年、2018年等。

  • 安装当前剩余时间最长的版本。测试它,如果它运行良好,就一直使用它。"如果没出问题,就不要修复它"

    保持内核系列的更新和升级

    sudo apt update
    sudo apt full-upgrade
    
  • 当下一个第一个点发布时,等待一个月,在八月末,最糟糕的错误已经被修复,你可以安装新版本并进行更新和升级到一个经过调试和优化的系统。这可能意味着更改:

    • 从14.04.1 LTS到16.04.1 LTS,或
    • 从14.04.1 LTS到18.04.1 LTS(只有标准Ubuntu有5年LTS),或
    • 从14.04.5 LTS到16.04.1 LTS,或
    • 从14.04.5 LTS到18.04.1 LTS(只有标准Ubuntu有5年LTS),或
    • 从16.04.1 LTS到18.04.1 LTS,或
    • 从16.04.1 LTS到20.04.1 LTS(只有标准Ubuntu有5年LTS),或
    • 从16.04.5 LTS到18.04.1 LTS,或
    • 从16.04.5 LTS到20.04.1 LTS ...
通常最好的做法是安装一个全新的系统,然后将个人文件从旧系统复制到新系统中。可以通过升级从旧的LTS版本到下一个LTS版本来实现。
sudo do-release-upgrade

但这是有风险的,最好在尝试之前先备份一份新鲜的备份

获取 ISO 文件

通过以下链接开始寻找剩余支持时间最长的版本的 ISO 文件:

如果通过上述链接找不到剩余支持时间最长的版本的 ISO 文件,您可以通过以下通用链接找到它们:

现在,当这篇文章被写出来的时候,你想通过以下链接找到Ubuntu 16.04.1 LTS



是的,您可以顺利且轻松地从一个LTS版本升级到下一个LTS版本:
步骤:按下“Alt + F2”键,然后输入“update-manager”,接着按照屏幕上的指示进行操作。

如果您想从12.04 LTS升级到16.04 LTS,很抱歉,这是不可行的。不能跳过LTS版本进行升级。您需要先更新为12.04->14.04,然后再更新为14.04->16.04。
直接重新安装可能会更快(并设置服务器以便下次更容易操作)。