升级时我可以跳过一些版本吗?

我目前正在使用Ubuntu 10.04。我知道有一个10.10版本,但是我能直接升级到11.04吗?你能帮我一步一步地操作吗?

1这个问题也可能会引起兴趣:http://askubuntu.com/a/304980/165026 - oligofren
4高度相关:为什么do-release-upgrade会跳过一个版本?(这不仅适用于LTS到LTS的升级!) - Eliah Kagan
18个回答

Ubuntu只支持从一个版本升级到下一个版本,或者从一个LTS版本升级到下一个LTS版本。所以你需要先从10.04升级到10.10,然后再升级到11.04。
这个限制有技术原因。当安装一个现有软件包的新版本时,有时需要进行转换,例如,可能需要将现有设置导入到新的数据库格式中。在执行这种转换时,打包脚本必须对旧格式做出假设。如果支持从所有先前版本的Ubuntu进行升级,那么这将很快变成一个维护噩梦,因为打包脚本必须能够将所有先前使用的格式转换为当前格式。为了避免这个噩梦,打包脚本通常只支持从上一个Ubuntu发布版本中包含的软件包版本(以及在LTS版本中包含的软件包的情况下,还支持从上一个LTS版本)进行升级。
直接从倒数第二个或更早的版本升级到当前版本(称为“跳跃升级”)是可能的,但可能会导致系统配置错误。

3你知道Canonical/Ubuntu在这个问题上有没有官方声明吗?我觉得很奇怪他们为什么不官方支持这个。不然的话,为什么Ubuntu 12.10的升级管理器会给我只升级到LTS版本的选项,如果那永远都不可能呢? - Avian00
1@Avian00 不知何故,当您升级到LTS时,它们会强制在 /etc/update-manager/release-upgrades 中的提示变量为 lts。您必须将其更改回“normal”,以使升级再次正常工作。至少,在我的经验中是这样的。 - Alexis Wilke
当我安装14.04时,它在过程中提供了16.04作为选择。我选择了16.04,并发现我可以依赖16.04 LTS。但是,在15版本中有一些内部变化,所以我的系统同时具有那些文件和用于启动过程的16.04文件。在混合系统上找到好的建议可能会令人困惑,尽管大多数14.04文件都被简单地忽略了。对我来说,这意味着我需要非常小心地遵循16.04 LTS的专门建议。这不是一个大问题,但值得考虑。14.04的建议可能看起来正确,但却没有实施您想要的更改(如cron日志级别)。 - SDsolar

更新到当前版本的方法,不推荐从比上一个版本(在这种情况下是非常旧的版本)更旧的版本进行更新。最好的做法是下载新版本,备份数据,然后安装新版本。
如果您正在使用Ubuntu 10.04,并且真的非常想要从该版本升级到最新版本,请继续阅读;如果您正在使用Ubuntu 10.10,并且也想要从该版本升级到最新版本,请转到第二部分。我必须警告至少10.10版本的用户,这将涉及下载超过2GB的数据,并且需要整整一天的时间。即使到最后,可能会变得更慢,出现错误,连接会中断,或者计算机会变得疯狂。这意味着我不能保证它能在每台电脑上完美运行。因此,请认真考虑是否要以这种方式升级。我建议阅读以下链接:如何升级到较新版本的Ubuntu? 这里有一张图片,展示了10.04用户在12.04发布后应该看到的内容:

enter image description here

更新 - 如果您在12.04发布后阅读此信息,那么在10.04的“更新管理器”中应该有一个选项,可以选择从10.04升级到12.04。这是最好的方法,因为12.04已经发布。

出于历史原因,我将保留下面的信息供那些想知道如何在12.04发布之前进行升级的用户使用,但如果您仍然使用10.04,请阅读这里:如何升级到更高版本的Ubuntu?,因为fossfreedom提供了一个非常好而完整的关于从10.04升级到12.04的答案。

  • 第一部分(适用于12.04发布之前的Ubuntu 10.04用户)
如果您使用的是Ubuntu 10.04,首先需要升级到10.10,然后再从10.10升级到11.04。原因是10.04是一个LTS版本(长期支持),因此它会自动从一个LTS版本升级到另一个LTS版本。所以下一个LTS版本将是12.04。当12.04发布时,您将在10.04上看到升级通知。但如果您仍然想要升级到11.04,则按照以下步骤进行操作:
Ubuntu 10.04升级到10.10
菜单方式: 1a. 使用菜单转到“系统 -> 管理 -> 更新管理器”。
键盘方式: 1b. 按下ALT+F2,然后输入gksu update-manager
当更新管理器打开并且在上部没有显示“有新的Ubuntu版本可用”的消息时,请执行以下步骤:
2- 点击更新管理器左下角的设置按钮。打开软件源窗口后,应该在更新选项卡中更改底部的发行版升级选项。将其从现有选项更改为正常版本,然后关闭。你在这里所做的是告诉Ubuntu不要检查LTS版本,而是检查普通版本。普通版本每6个月发布一次,而LTS版本每两年发布一次。例如8.04、10.04、12.04等。

enter image description here

2.1 再次打开更新管理器,按照步骤1a或1b进行操作。
2.2 点击上方应该出现的“升级”按钮。升级完成后重新启动电脑,您将进入10.10版本。进行一些测试,如果您确定要升级到11.04,请执行以下操作:
第二部分(适用于Ubuntu 10.10用户)
Ubuntu 10.10升级到11.04
1. 按下ALT+F2,输入“gksu update-manager -d”以打开更新管理器。其中的“-d”是用来检查是否有开发版本。由于11.04仍在开发中,它将出现在更新管理器的上方,显示为“新的Ubuntu版本11.04”,并带有一个“升级”按钮。

enter image description here

点击升级按钮并按照指示进行操作。
重要提示 - 确保您已经更新了Ubuntu 10.10中的所有内容,以便您可以顺利升级到11.04。
注意 - 从LTS(长期支持版)到LTS,您实际上可以进行升级。例如,从10.04 LTS到12.04 LTS。但是对于其他版本,如10.10,您需要逐个版本地进行升级,直到达到最终版本。在您的情况下,在12.04发布之前,您可以从10.04升级到10.10,然后再从10.10升级到11.04,以此类推,直到11.10。在12.04发布之后,您可以直接升级到12.04,因为它是下一个LTS版本。

2因为这不再回答问题,所以收到了负评。它被规范化了... - Jjed
4其实,Jacob,即使你编辑了,这仍然回答了问题。用户正在使用10.x版本,我会根据这个给他一个答案。不过,我会在最后加上一段“注释”,指出关于旧版本升级到新版本的一些要点。 - Luis Alvarado
1在SE网站上,回答并不仅仅是为了回答者自己,甚至主要也不是。这个回答已经回答了一个部分无关紧要的问题(在这个时候,谁还想把10.04升级到11.04?)。你是否可以将你的说明更加通用一些?如果可以的话,我会改成点赞的。 - Jjed
2实际上,我部分地不同意。答案是为提问者和一般用户准备的。当我创建答案时,是为了让用户能够逐步更新,就像他当时提问的那样。这符合规则并回答了用户的问题。我也不明白你希望它更加通用的原因,因为它是按步骤进行的,并且最后的注释提到了12.04发布后的两种更新方式。 - Luis Alvarado
在查找“canonicalized”这个词(我不知道这个词)之后,我明白了你的意思。我以为你在某种程度上在谈论Canonical,并且它被“canonicalized”。就像它被Ubuntuzied或者其他什么一样。无论如何,我会在开头进行修改,以免让读者感到困惑。 - Luis Alvarado

不,这是不可能的。
使用标准升级方法。
唯一可以在标准版本升级之外工作的“点对点”发布升级是LTS(长期支持)版本升级。换句话说,您可以从8.04升级到10.04,从10.04升级到12.04,而无需升级到中间的三个非LTS版本。否则,您需要先升级到10.10,然后再升级到11.04。由于您并不太落后,所以不会花费太长时间。只需像往常一样运行更新管理器,并按照链路升级到11.04。
如果您愿意尝试,可以直接插入一个11.04的光盘,覆盖安装在10.10上。这样做将保留您的主文件夹内容,但您需要重新安装之前的所有软件。

你不能跳过升级之间的版本。Jaunty和Lucid之间的版本是Karmic。我建议你备份重要数据并进行完全重新安装,因为许多东西已经改变,包括引导加载程序。
如果你不喜欢全新安装,可以使用备用CD进行升级。
准备工作:
- 备份系统(如果可能的话,制作一个磁盘镜像) - 备份个人文件(家目录),这样你就可以轻松复制文件 - 删除所有PPA和非标准软件源,包括它们的软件包 - 准备好应对失败,准备一张Live CD,这样即使硬盘坏了,你仍然可以启动
下面是使用备用CD进行升级的步骤:
  1. http://releases.ubuntu.com/karmic/下载ubuntu-9.10-alternate-i386.iso到你的主目录(如果你使用64位系统,请将i386替换为amd64,如果你使用KDE,请将ubuntu替换为kubuntu
  2. 打开终端并运行:

    sudo mount -o loop ~/ubuntu-9.10-alternate-i386.iso /media/cdrom
    
  3. 执行以下命令开始升级:

    gksu "sh /media/cdrom/cdromupgrade"
    

    如果你使用KDE(Kubuntu):

    kdesudo "sh /media/cdrom/cdromupgrade"
    
  4. 重新启动
升级从9.04到9.10后,继续使用以下命令进行升级到10.04:
sudo do-release-upgrade -d

太好了!我来试试看....! - Yadnesh
@Yadnesh:一定要做好备份,最好使用像Clonezilla这样的磁盘镜像工具,这样如果升级出现问题,你就可以恢复你的磁盘。 - Lekensteyn
有没有可能升级出问题? - Yadnesh
@Yadnesh: 嗯,新的设置并不总是与旧的设置兼容良好。在我从Jaunty升级到Karmic的过程中,许多桌面小部件都被移动了位置。如果可能的话,建议进行全新安装。除了软件问题外,还有其他问题:电源可能会断电,硬盘可能会损坏,或者人们可能会把咖啡洒在机器上。 - Lekensteyn
1@Yadnesh, @Lekensteyn,我建议您在开始升级之前删除所有的PPA和其他非官方仓库,可能还要删除来自这些PPA的软件包(例如使用ppa-purge)。而且,在进行从9.10到10.04的升级之前,确保9.10已经是最新的也是一个好主意... - JanC
@JanC:这不会影响主目录中的设置。 - Lekensteyn

是和不是!
是的,这是可能的 - 我见过一些人尝试通过sudo do-release-upgrade或手动更改他们的sources.list来强制升级 - 但是...
不要这样做...
Canonical只支持从LTS到LTS的升级(例如从10.04到12.04),或者从每个中间版本升级(10.04-10.10-11.04-11.10-12.04-12.10等)。
如果你试图强制升级,很可能会破坏你的系统 - 文件可能无法升级或更新,而且很可能会导致系统行为异常或甚至无法启动。
我也见过一些人尝试备份/home并在新安装上恢复它。这通常可以工作 - 然而 - 我个人更喜欢进行干净的全新安装,并从备份中复制特定文件。只复制特定文件的好处是清理掉多年来积累的垃圾。

+1 为了垃圾清理,我从2009年以来都没有做过...幸运的是,现在的驱动器非常大。还要注意,在终端用户桌面上,只备份“/home”目录是可以的,但是在服务器上,你很可能有大量需要重新安装的“/etc/…”目录中的设置,如果你安装一个全新的操作系统,这将花费很长时间。 - Alexis Wilke

您需要先升级到10.10,然后再升级到11.04。您可以使用update-manager,但也可以通过命令行使用do-release-upgrade

如果需要先升级update-manager-core,则整个步骤如下:

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

您可以重复升级过程以达到11.04版本。

感谢,这解决了我在升级旧系统时遇到的问题。然而,有一个增强功能可以让这变得更容易 - 你不需要安装Apache。
只需使用file:// URI而不是http:// URI。
所以步骤如下(我的用户名是fozzy):
fozzy@hostname:~$ wget -O - http://changelogs.ubuntu.com/meta-release | sed '/lucid/,$d' > meta-release

使用您喜欢的编辑器在您的主目录中编辑meta-release文件,以便karmic块中的“Supported: 0”行现在更改为“Supported: 1”。

编辑/etc/update-manager/meta-release文件,并将URIs修改为以下形式(注意连续的三个斜杠):

URI = file:///home/fozzy/meta-release
URI_LTS = file:///home/fozzy/meta-release

执行版本升级。
这个好处是不需要安装apache和它所依赖的所有东西 - 我在一个最小化的系统上使用它,我不想引入所有那些东西。这也意味着你可以在没有root权限的情况下编辑meta-release文件。
只有在编辑/etc/update-manager/meta-release文件并运行do-release-upgrade时才需要root权限。

多年来我一直在寻找这个信息。找到了:-)想要说声谢谢! - opinion_no9

你可以按照上述方法进行操作,而无需安装Apache或更改/etc/hosts文件。只需将meta-release文件从wget保存到某个位置(除了/etc/update-manager/meta-release的顶部),并按照描述进行编辑。然后,在/etc/update-manager/meta-release中,将"URI = http://....."行更改为"URI = file:///path/to/my/edited/meta-release/file"

此外,为了使do_release_upgrade正常工作,在你编辑的meta-release文件中,你需要将Release-File、Upgrade-Tool和UpgradeToolSignature的URL中的archive从http://archive....更改为http://old-releases...


你具体指的是上面的哪种方法? - rubo77

升级Ubuntu时不能跳过版本。因此,您需要先升级到9.10,然后再从9.10升级到10.04。

但是当屏幕上只显示10.04这个选项时,我应该如何选择9.10呢?有没有什么办法可以做到呢? - Yadnesh
未显示的原因是9.10已经不再受支持,因此它已从主要下载服务器和镜像中删除... - JanC
@Yadnesh: 我觉得你仍然可以下载9.10备用光盘并使用它进行升级。 - binW

Jaunty在一段时间前停止支持。从Jaunty(Karmic)升级到的下一个版本也已经停止支持。
你也不能跳过中间版本,即不能从9.04直接升级到10.4,必须通过9.10进行升级。
由于Jaunty和Karmic都已从主要软件仓库中移除,你最好的升级方法是下载10.04的桌面ISO并进行全新安装。
当然,在安装之前,你应该备份/home目录下的非隐藏文件。安装完成后,可以恢复这些文件。

我可以通过光盘进行升级吗? - Yadnesh
2是的 - 参考@lekensteyn的回答。我的建议是,把这个当作一个重新开始的机会 - 你会惊讶于多年来积累了多少垃圾。此外,你还可以避免一些“升级”问题,比如由于安装错误的软件包/冲突的软件包而导致的问题,这些软件包可能是你自己编译/手动安装的。 - fossfreedom
我建议也复制所有隐藏文件,因为它们可能包含有用的信息(例如,我怀疑Yadnesh不想丢失他的邮件)。 - JanC
1@JanC - 导出邮箱是更好的答案。复制隐藏文件的关键问题在于配置文件的结构可能已经改变了,如果你用旧的配置文件替换新的,你会遇到无法正常运行的应用程序/主题问题和其他问题。 - fossfreedom
@fossfreedom:Yadnesh正在升级,而不是降级,通常应用程序知道如何将旧的配置文件转换为新的(无论如何,在每次升级时都必须这样做,否则您将永远无法升级)。此外,“点文件”或“点目录”中并不只有邮件这些有用的东西,我怀疑大多数人都不知道哪些文件包含重要数据,或者所有应用程序是否都有导出数据的功能... - JanC
1@fossfreedom @JanC:如果可能的话,导出并复制所有内容。即使应用程序可以转换旧的配置文件,也不是完美的(新功能不会被整合并采用奇怪的默认设置)。 - Lekensteyn