如何升级到更高版本的Ubuntu?

有哪些不同的方法可以用来将Ubuntu从一个版本升级到另一个版本?

3相关链接:从之前的Ubuntu版本升级 在Ubuntu官网上。 - Eliah Kagan
sudo apt updatesudo apt upgrade -ysudo apt-get dist-upgradesudo shutdown -r nowsudo do-release-upgrade - Zamicol
12个回答

摘要

本答案总结了推荐的社区升级流程

在进行任何升级过程之前,您应该始终阅读发布说明以了解可能影响您升级的潜在问题。

备份

在开始任何升级过程之前,请问自己一个问题:

我能承受丢失所有数据(如文档和文件)的风险吗?

如果答案是否定的 - 那么备份您的安装

升级Ubuntu的成功率达到99%,但如果出现问题,备份将为您节省大量的烦恼。

备份工具比较

图形

如果您从“附加驱动程序”或“硬件驱动程序”窗口安装了专有驱动程序,则这些驱动程序应该会自动升级为适用于12.04/14.04的Nvidia/ATI二进制驱动程序。
如果您从制造商的网站手动下载并安装了专有驱动程序,则建议在升级之前先删除这些驱动程序,并恢复到开源驱动程序。可能的情况是,在升级后可能会保留一个“/etc/X11/xorg.conf”文件,然后在第一次重启时,您将会看到一个“黑屏”。
以下问题描述了删除过程:
  1. {{link1:如何删除从其网站下载的ATI/AMD驱动程序?}}

  2. {{link2:删除nVidia驱动程序并返回Nouveau}}

PPA源

在升级过程中,您可能添加的任何PPA源都将自动禁用。通常,PPA不会影响升级过程。
有几个特定的PPA可能会引起问题 - x-swat和xorg-edgers。在升级之前,应该使用ppa-purge将这些PPA移除。
1. ubuntu-x-swat/x-updates 2. xorg-edgers/ppa
如何升级:
您的13.10升级程序将提醒您有新版本可供升级。如果没有出现此情况,请参阅下面的故障排除部分。
对于LTS用户(12.04/14.04和12.04.1/14.04.1版本之间),请参阅故障排除部分中的特殊情况。
官方ubuntu.com页面上有相关信息。

在Ubuntu发布后的第一时间,下载服务器会非常繁忙。因此,如果可以的话,我们建议您等待几天再进行升级。

或者,您可以使用像Transmission这样的BitTorrent客户端进行下载,它是官方的桌面ISO种子文件。

通过网络升级

您可以按照以下步骤轻松地通过网络进行升级。

  1. 启动更新管理器。
  2. 点击“检查”按钮以检查是否有新的更新。
  3. 如果有任何需要安装的更新,请使用“安装更新”按钮进行安装,并在完成后再次点击“检查”。
  4. 将会出现一条消息告知您新版本的可用性。
对于10.04LTS/12.04LTS的用户,您需要检查“发布升级 - 显示新发行版”下拉菜单,确保选择了“仅长期支持版本”,如果没有,请进行更改。有关更多详细信息,请参阅下面的故障排除部分。请参阅故障排除部分,了解12.04/14.04和12.04.1/14.04.1之间的LTS用户的特殊情况。

update-manager-upgrade

点击升级。
按照屏幕上的指示进行操作。
另请参阅:
- 有关某些特定情况下其他升级方法的更多信息,请访问https://help.ubuntu.com/community/TrustyUpgrades
使用CD或USB镜像进行升级
如果您正在使用10.04 LTS/12.04 LTS或11.10/13.10,并且插入了Live CD或从Live CD启动安装,将会出现升级到12.04/14.04的选项。它会自动检测已安装的应用程序并安装更新版本的应用程序。
如果您下载了ISO文件,建议进行md5sum校验以确保下载的ISO文件和刻录的CD都是有效的。
从10.04 LTS/12.04 LTS升级(这里显示的是双重引导):
注意:从10.04升级到12.04 / 从12.04升级到14.04尚未激活,请参阅此问题以获取更多详细信息:
- [为什么从LTS升级到下一个版本时显示“找不到新版本”?](link1) 从11.10/13.10升级 ![enter image description here](https://istack.dev59.com/QB7SV.webp)

使用命令行进行升级(例如Ubuntu服务器):

11.10/13.10及更高版本
在终端中运行以下命令: ``` do-release-upgrade ```
10.04/12.04
  • 编辑/etc/update-manager/release-upgrades文件,并设置Prompt=lts

  • 在终端中运行do-release-upgrade

故障排除

如果你的10.04/12.04或11.10/13.10的更新管理器没有提示你进行升级,那么请检查你的软件源是否设置为"Never"。如果是这样,请将其更改为"Long Term Support Releases Only"(10.04 LTS/12.04 LTS)/ "For any new version"(11.10/13.01):

enter image description here
适用于10.04 LTS/12.04 LTS

enter image description here
适用于11.10/13.10

根据Ubuntu工程基础团队经理Steve Langasek的说法:

默认情况下,LTS版本之间的升级在第一个点发布之前是不启用的。建议大多数LTS用户在此之前等待升级。
如果您选择在此之前升级,可以通过向升级工具传递-d选项来进行升级,运行do-release-upgrade -d或update-manager -d,从vanilla 10.04/12.04升级到12.04/14.04。
有关更多详细信息,请参阅以下问答: 为什么从LTS升级到下一个版本时显示“未找到新版本”? 如果您正在使用Ubuntu的已停止支持版本
您可能需要修改/etc/apt/sources.list以引用Ubuntu的old-releases服务器。按照这个问题中给出的答案进行必要的修改,然后升级到较新的Ubuntu版本。

这是我作为一个类似教程的答案给出的建议,基于我升级的经验。

这个过程是由我亲自测试过的,并且按照预期工作。希望这能帮助其他人顺利升级。

这不是官方指南。

友情建议

没有必要急于行动。没有理由从第一天开始升级。新的Ubuntu版本不会消失。它将在下周、下个月仍然存在...让服务器平静下来。如果服务器在升级过程中崩溃,那将非常令人沮丧和痛苦。

开始

首先,我们需要检查新版本是否可用。 打开终端 Ctrl+Alt+T 并输入以下命令:

do-release-upgrade -c

此命令将检查服务器上是否有新版本,并返回结果。如果您发现此命令不可用,则需要安装update-manager-core软件包。如果您的发行版不再受支持,您需要在可以使用此升级方法之前搜索旧镜像以获得此软件包的副本。

如果版本可用,我们可以继续。

如果版本不可用,请再检查一件事情。打开此文件:

gksudo gedit /etc/update-manager/release-upgrades

检查并查看Prompt是否等于normalPrompt=normal。如果不是,则进行更改;在保存文件后,在终端中运行以下命令:
sudo apt-get update 
do-release-upgrade -c

升级之前

删除所有外部PPA

您必须删除过去添加的所有PPA。其中一些可能无法正常工作,一些可能在新版本中不受支持甚至已被弃用。

打开Ubuntu软件中心,点击编辑>软件源>其他软件,然后逐个点击并删除所有PPA。

请小心

某些PPA,例如Ubuntu X-team“xorg crack pushers” team“GNOME3 Team” team,会升级系统的一些重要软件包。

您必须使用另一种方法删除这些PPA:安装ppa-purge。该脚本将允许您将所有重要软件包降级到原始(官方)Ubuntu版本。在终端中执行以下命令:

sudo apt-get install ppa-purge
sudo ppa-purge ppa-name

ppa-name 替换为实际的存储库名称。清除后,您可以运行。
sudo apt-get update

更新源。

整理工作

在升级到新版本之前,做一些整理工作是个好主意。打开终端并按照以下顺序执行命令:

sudo apt-get --purge autoremove
sudo apt-get clean all
sudo apt-get purge $(dpkg -l | awk '/^rc/ { print $2 }')

首先,这条命令会删除/修复任何残留/损坏的软件包(如果有的话)。清理命令会从apt缓存(/var/cache/apt/archives)中删除所有旧的.deb文件-虽然这不是必需的,但如果您的磁盘空间比较低,这是一个非常好的主意。 sudo apt-get purge $(dpkg -l | awk '/^rc/ { print $2 }') 会删除未被完全卸载的软件包的配置。

搜索错误

最常见的问题通常是图形驱动程序问题。在升级之前搜索错误。打开Launchpad页面,使用搜索框查找您的图形卡型号(最好是ID),并浏览错误报告。如果找到了一些错误,请考虑等待到错误得到修复后再进行升级。如果错误与附加驱动程序(受限制)有关,则在升级之前删除该驱动程序

自定义内核(非官方)

如果您使用自定义内核,无论是通过编译还是从.deb软件包中获取(例如主线版本),在升级时最好从官方Ubuntu内核启动,否则可能会导致升级失败。

系统升级

通过终端

大多数用户使用更新管理器进行系统升级。虽然我并不是不相信它,但我更相信终端。

关闭所有应用程序,只打开一个终端(全屏模式)。 执行以下命令,升级过程将开始:

sudo do-release-upgrade

升级期间

  • 不要打开任何应用程序,在重启之后再进行操作。
  • 不要进入桌面环境,稍后会有时间做这个。喝杯咖啡,放松一下,耐心等待升级完成。
  • 如果在升级过程中需要干预(通过终端),你可以使用 TabEnter 键。例如,如果你有两个显示管理器(比如 LightDM 和 GDM),升级过程会询问你想使用哪一个;按下 Tab 键直到你想要的那个被突出显示,然后按下 Enter 键。

享受吧!

请随意编辑此答案,使其更易理解(语言修正)和/或改进它(添加内容)。


我不认为你需要手动移除PPA,do-release-upgrade会替你完成这项任务。 - Jorge Castro
1@JorgeCastro 有时候它不起作用,或者事情变得混乱。手动删除它们并不困难,而且更安全。无论如何,这只是我的方法。 :-) - NickTux
@Aditya:如果有任何残留/损坏的软件包,客房部门将会移除/修复它们。sudo apt-get --purge autoremove命令可以移除任何残留的软件包,同样地,sudo apt-get purge $(dpkg -l | awk '/^rc/ { print $2 }')也可以以更有效的方式进行移除,但前者无法完成任务时可以尝试后者。虽然我认为sudo apt-get clean all不是必需的,因为它会删除在从存储库安装新软件包时保存在/var/cache/apt/archives目录中的*.deb软件包(例如设置软件包)。希望现在你明白了。 :) - Saurav Kumar

尝试以下命令:
sudo apt-get update
sudo do-release-upgrade

我的方法是基于五年痛苦的Ubuntu升级经验,与众不同。我并不是在挑衅,只是分享我使用的方法。
当然,你不能承受丢失所有的数据,所以是的,备份它。但我从一个更早的问题开始:你能否承受无法访问你的数据,因为一切都坏了?如果不能,那么这个方法可能适合你。你需要一点空闲的磁盘空间。
我保留两个操作系统的主分区(还有一个用于数据、交换等的单独分区)。例如,我在/dev/sda1上安装了Natty,并在/dev/sda2上运行Precise Beta。
然后我选择一个选项:升级或清洁安装。正如Linux Mint指出的那样,升级永远不会感觉像是一次干净的安装,但有时你想要那样。
对于一次干净的安装,你只需插入新的USB驱动器,并告诉它在/dev/sda2上安装,将/home指向你现有的家目录分区。
为了进行升级,我从sda1镜像了sda2。有很多方法可以做到这一点,fsarchiver不错,或者简单的cp或tar也可以。一旦我在备用分区中制作了所有文件的完全相同副本,我就会挂载它并编辑/etc/fstab以更新新分区的UUID,否则它会混淆。然后我运行grub-update,下次重启时grub会给我两个选择。我检查一下我可以引导任何一个系统。然后按照上述步骤进行升级。
进一步警告:新的桌面版本往往会破坏旧的桌面配置文件。所以你可能会遇到旧系统和新系统都无法正常工作的情况。如果你有足够的磁盘空间,可以使用"cp -ar /home/{youruser,newname}"命令,并将新用户的HOME路径指向/etc/passwd中的这个新路径。
拥有两个操作系统分区给了我一个备份选项;如果新系统中的某些东西(可能是驱动程序、错误、缺少的应用程序等)影响了生产力,我至少可以回到之前的状态。显然,这并不适合胆小或新手。

4这也是我的方法,尽管我还会制作一个家目录的新副本,因为正如你所说,对新操作系统中用户配置文件的更改可能会导致回退时出现问题。我的大型文件,比如数据(音乐、照片、文档)和Wine安装文件都存储在一个独立的驱动器上,并通过几个符号链接插入到我的新家目录中。 - glibdud
9@glibdud:符号链接到音乐、照片、文档:这是最明智和安全的布局。对我来说,这是唯一真正的布局。$HOME 目录中充满了与操作系统(及其版本)相关的配置文件,如果在干净安装后重新使用它们,那将不再是一个干净的安装。$HOME 应被视为操作系统安装的一部分。因此,将"大型数据"移走,让干净的安装清除配置和设置,然后重新设置符号链接。 - MestreLion
我正在尝试使用这种方法,但遇到了一些问题。我需要一些帮助。我在http://askubuntu.com/questions/607008/problem-cloning-root-and-home-before-doing-an-upgrade-from-trusty-to-utopic上开了一个新的主题。 - Joe
cp命令中,-a开关的作用相当于-dR --preserve=all,而-R的作用与-r相同,因此只需使用cp -a ...命令即可。 - Teemu Leisti
当你说“将/home指向现有的主分区时,你是指在安装过程中,在“其他选项(安装程序中)”下,将这个现有的主分区挂载到新安装的/home上,并且当然还要将你正在安装新操作系统的磁盘挂载到/上吗?这样做不会立即覆盖掉当前主分区上的所有内容,对吗?(技术上询问在座的任何人) - Life5ign
1@Life5ign 是的,那就是我的意思。只要不安排格式化 /home,一切都应该没问题。话虽如此,备份备份备份是最安全的方式! - artfulrobot

官方的ubuntu.com页面上有以下信息:
- 适用于桌面和服务器版本。 您可以通过以下步骤轻松进行网络升级。
1. 打开软件中心。 2. 转到编辑 -> 软件源。 3. 在软件源应用程序中选择子菜单“更新”: ![software-sources](https://istack.dev59.com/zDcof.webp) 4. 将“发行版更新”下拉菜单更改为“正常发布”,然后关闭应用程序。 5. 启动更新管理器。 6. 点击“检查”按钮以检查新的更新。 7. 如果有任何要安装的更新,请使用“安装更新”按钮进行安装,并在完成后再次点击“检查”。 8. 会出现一条消息,告知您新版本的可用性。 ![update-manager-upgrade](https://istack.dev59.com/cPywW.webp) 9. 点击“升级”。

按照屏幕上的指示进行操作。

另请参阅:

技术概述中得知:

要从桌面系统上的Ubuntu 11.04升级,按下Alt+F2,然后在命令框中输入update-manager(不带引号)。更新管理器应该会打开并告诉您:新的发行版本“11.10”可用。点击升级并按照屏幕上的指示进行操作。

要从服务器系统上的Ubuntu 11.04升级:如果尚未安装update-manager-core软件包,请先安装它;使用命令sudo do-release-upgrade启动升级工具,并按照屏幕上的指示进行操作。请注意,服务器升级现在更加稳健,并将使用GNU screen,在出现断开连接等问题时自动重新连接。

使用CD或USB镜像进行升级

从11.04版本开始,当您启动livecd并开始安装时,会出现一个升级到11.04的选项。它将自动检测已安装的应用程序,并安装这些应用程序的更新版本。假设您没有双重引导。

live CD : Allocate drive space

使用命令行进行升级:

  • 在终端中运行do-release-upgrade

如果你感到冒险,并且已经尝试过这里列出的其他方法之一,并且遇到了问题,或者你只是不耐烦,你可以尝试这个。
如果你想尝试这个方法,请先阅读整篇文章。如果你不理解其中的部分内容,请不要尝试。
暴力破解法
我曾成功地使用这种方法一次性升级了4个主要版本的Ubuntu安装,但请自行承担风险。如果你遇到问题,恢复起来可能比其他方法要困难得多。
重写apt源
首先,将apt软件源列表中当前版本(如lucid、raring等)的所有实例替换为新版本,就像这样:
sudo sed -i 's/quantal/saucy/g' /etc/apt/sources.list /etc/apt/sources.list.d/*.list

如果您有一些没有更新版本的第三方存储库,那么这将在下一步中引发错误,但您可以安全地忽略它们。来自这些存储库的软件可能由于更新的依赖关系而出现问题,但通常情况下,如果您只升级一两个版本,它们应该是正常的。您可以通过删除/etc/apt/sources.list.d/目录中相关的列表文件来处理这些错误,或者您可以假设存储库维护人员最终会为新版本开放一个存储库,并且保留文件并忽略警告。

进行升级

下一步:

sudo apt-get update        # here's where you might get some errors you can ignore.
sudo apt-get dist-upgrade  # point of no return

在第二步,你可能需要接受一些建议来修复损坏的软件包。快速浏览一下这些建议,如果看起来不太严重,就接受这些改变。大部分问题都可以在后续步骤中修复。
你还需要回答关于使用哪个版本的软件包配置的问题。按照你自己的意愿进行选择。
修复错误
安装软件包时,很可能会遇到问题。为了解决这些问题,首先尝试运行“sudo apt-get dist-upgrade”。如果仍然出现相同的问题,则检查消息(通常是软件包文件冲突),并手动删除导致问题的软件包,使用“sudo dpkg --force-depends -r <软件包名称>”(通常是两个冲突软件包中较旧的版本)。然后再次运行“sudo apt-get dist-upgrade”。反复执行此操作,直到“sudo apt-get dist-upgrade”不做任何操作(所有软件包都已升级)。
结束游戏

重要提示:在进行其他操作之前,请确保所有必要的程序都已安装。最简单的方法是运行类似于sudo apt-get install ubuntu-desktop(或者kubuntu-desktop,或者你正在使用的任何版本)的命令。这将确保安装了桌面所需的所有软件包,以便您在重新启动时不会遇到问题。

现在,您可以运行sudo apt-get autoremovesudo apt-get clean来清理旧的残留软件包。

如果在升级过程中删除了任何软件包,则可以像平常一样重新安装它们。


“不要轻易动摇你的稳定性”是我所学到的教训,也是我将之奉为箴言。特别是当你有一个很好的选择不去干扰你的稳定性时,你根本不应该去打破它。因此,我保留了我的10.04版本,并在另一个分区上安装了12.04版本。这是我的硬盘的屏幕截图:

enter image description here

我需要在我的新12.04上安装与10.04中存在的所有软件。

  1. 首先,您需要知道在您的10.04系统上安装了哪些软件包。可以执行以下命令:

    sudo dpkg --get-selections "*" > pack_file

运行该命令后,您将在名为'pack_file'的文件中获得10.04中所有软件包的名称。

将该文件传输到12.04,并运行以下命令:

  • sudo apt-get update
  • sudo dpkg --set-selections < pack_file
  • sudo apt-get -u dselect-upgrade

这将获取所有软件包及其依赖项,并在您的系统上进行安装。我需要下载大约2GB的数据,但我不用担心我的发行版会被破坏。

这个方法适用于任何版本,虽然我是在10.04上使用的。因此,您可以升级到最新版本而无需"upgrade"。

请参考这个链接:http://sosaysharis.wordpress.com/2012/05/02/upgrading-to-ubuntu-12-04-the-way-i-did-it/

使用命令提示符安全升级13.04到13.10

自从发布了13.10版本,许多人想知道如何将Ubuntu的先前版本(13.04)升级到最新版本13.10。在升级到13.10之前,了解变化/支持/兼容性是很重要的。

因此,我建议按照以下步骤有效地升级到13.10

  • 首先打开软件源并确保可能的更改已设置。

    • 在终端中运行此命令:

      sudo software-properties-gtk
      

      软件源窗口打开时,进行以下更改:

    • Ubuntu软件选项卡下,勾选所有四个复选框

    • 更新选项卡下,勾选前两个复选框,并将通知我新的Ubuntu发布版本的值设置为对于任何新版本
    • 其他软件选项卡下,勾选前四个复选框,如果有人不想通过添加存储库来升级第三方软件,请取消勾选/移除剩余的(建议移除)。
  • 关闭窗口,并执行以下命令以更新存储库:

    sudo apt-get update
    
  • 现在是检查兼容性、更改和支持等的时间,可以使用do-release-upgrade -d选项。 要获取更多信息,请运行:man do-release-upgrade 在终端中输入此命令:

    do-release-upgrade -d
    

    它将下载大约1 MB大小的Upgrade Tool Signature,名称为saucy.tar.gz。然后,它将提示输入密码以解压缩它,并最终检查/获取存储库中的软件包,在一段时间后,按下Enter键后,它将显示要升级的软件包的完整描述、已下载和已安装的大小等。

    可以同时将13.04升级到13.10,在提示安装升级时按下Y

这是升级到13.10最简单、最安全的方法。如果在中途终止,可以随时安装升级,只需执行以下命令:
sudo apt-get upgrade

或者

sudo apt-get dist-upgrade

要了解更多关于dist-upgrade的信息,请键入:man apt-get dist-upgrade

2这正是我升级从18.04 -> 18.10所需要的东西。其他指南都没有提到-d选项。(我猜我本来可以阅读帮助,但事后诸葛亮) - Mattwmaster58

如果你需要使用图形界面升级,请使用Rinzwinds的答案。如果你需要使用命令行升级,请查看此页面。这个指南是去年的,但对12.04版本仍然有效。一旦12.04发布,这种方式应该可以工作。

回答你的另一个问题:11.10在11.04之后发布。第一个数字总是代表年份(在这种情况下是11代表2011年),第二个数字代表月份或发布(04代表四月,10代表十月)。

最后,但并非最不重要的:正如Rinzwind告诉你的,你应该等待正式发布而不是在测试版时升级。当然,除非你知道自己在做什么。


逐个执行以下命令:
sudo apt-get update  

那么

sudo apt-get dist-upgrade

或者

sudo do-release-upgrade