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

我目前正在使用Ubuntu 10.04。 我知道有一个10.10版本,但我可以直接升级到11.04吗? 你能指引我走一步吗?

Ubuntu仅支持从一个版本升级到下一个版本,或者从一个LTS版本升级到下一个LTS版本。 所以你需要从10.04升级到10.10,然后再升级到11.04。

这种限制有技术原因。 当安装新版本的现有软件包时,有时必须执行转换,例如,它可能必须将现有设置导入新的数据库格式。 在执行此类转换时,打包脚本必须对旧格式进行假设。 如果支持从所有以前版本的Ubuntu升级,那么这很快就会成为维护的噩梦,因为打包脚本必须能够从以前使用的所有格式转换为当前格式。 为了避免噩梦,打包脚本一般只支持从以前的Ubuntu版本中包含的软件包版本( 以及之前的LTS版本,在LTS版本中包含的软件包的情况下)进行升级。

可以直接从倒数第二个版本或更早版本升级到当前版本(称为“跳过升级”),但可能导致系统配置错误。

要从旧版本(在这种情况下非常旧)中将版本从先前版本更新到当前版本,我们强烈建议不要这样做 。 您最好下载新版本,进行备份然后安装新版本。

如果您正在使用Ubuntu 10.04并且真的想要从该版本更新到最新版本,那么继续阅读,如果您使用的是Ubuntu 10.10并且还希望从该版本更新到最新版本,请转到第二部分。 我应该警告至少10.10的用户,这涉及下载超过2GB的数据,并将带你一整天。 即使最后它可能会变慢,给你错误,你的连接会在某些时候掉线或计算机会发疯。 这意味着我不保证它能在每台PC上完美运行。 如果你想以这种方式升级,那么真的要考虑一下。 我建议阅读此链接: 如何升级到更新版本的Ubuntu?

这是一张图像,显示了12.04发布后10.04用户应该看到的内容:

在此处输入图像描述

更新 – 如果您在12.04之后阅读此内容,则10.04中的Update Manager中应该有一个选项,表示从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.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-单击左下方Update Manager中的“ 设置”按钮。 软件源Windows打开后,它应该让您进入更新选项卡 ,您将在其中更改底部的版本升级选项。 将其从正常版本更改为正常版本然后关闭。 你在这里做的是告诉Ubuntu不检查LTS版本,而是检查正常版本。 正常版本是每6个月出现的版本。 LTS每两年推出一次。 例如8.04,10.04,12.04 ..

在此处输入图像描述

2.1按照1a或1b中的步骤再次打开Update Manager。

在此处输入图像描述 2.2。 单击应在上部显示的UPGRADE按钮。 完成升级后重启PC,你应该在10.10。 测试一下然后如果你100%肯定要去11.04做以下事情:

  • 第二部分(适用于Ubuntu 10.10用户)

Ubuntu 10.10到11.04

  1. ALT + F2和类型’gksu update-manager -d’打开更新管理器。 -d用于检查是否存在开发版本。 由于11.04仍在开发中,它将出现在Update Manager的上半部分,说新的Ubuntu版本11.04,带有一个UPGRADE按钮

在此处输入图像描述

  1. 单击UPGRADE按钮并按照它完成。

重要 – 确保您已经更新了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。

不,这是不可能的。

使用标准升级方法。

唯一的“点对点”版本升级在标准版本之外工作以发布升级,是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位系统,用amd64替换i386ubuntu-9.10-alternate-i386.isokubuntu取代ubuntu
  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 

是的,不!

是的,这是可能的 – 我看到有些人尝试通过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并在全新安装时恢复它。 这通常可以工作 – 但是 – 我个人更喜欢从备份中彻底安装一个特定于副本的文件。 只复制特定文件的好处是可以清除多年来积累的所有垃圾。

您需要升级到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或更改/ etc / hosts。 只需从某个地方的wget保存元文件(除了在/ etc / update-manager / meta-release之外)并按照描述进行编辑。 然后,在/ etc / update-manager / meta-release中,将“URI = http:// …..”行更改为“URI = file:/// path / to / my / edited / meta-release /文件”

此外,要使do_release_upgrade起作用,在已编辑的元版本文件中,您必须将Release-File,Upgrade-Tool和UpgradeToolSignature的URL中的存档从http://archive....更改为http://old-releases...

感谢我解决了升级旧系统时遇到的问题。 但是,我使用了一个增强function,这将使这更容易 – 您不需要安装Apache。

只需使用file:// URI而不是http:// URI。

所以这个过程是(我的用户名是fozzy):

 fozzy@hostname:~$ wget -O - http://changelogs.ubuntu.com/meta-release | sed '/lucid/,$d' > meta-release 

使用您喜欢的编辑器在主目录中编辑元发布文件,以便karmic块中的“Supported:0”行现在显示为:“Supported:1”。

编辑/ etc / update-manager / meta-release并生成URI(注意连续的三个斜杠):

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

执行版本升级。

关于这一点的好处是没有必要安装apache及其引入的所有内容 – 我在最小的系统上使用它并且我不希望所有这些内容被拉入。它还意味着您可以编辑元发布文件没有根。

您只需要root用于编辑/etc/update-manager/meta-release文件,然后运行do-release-upgrade

升级Ubuntu时无法跳过某个版本。 因此,您需要先升级到9.10然后再升级到9.10到10.04。

Jaunty在某个时候失去了支持。 Jaunty(Karmic)的下一个版本也不受支持。

你也不能跳中间版本,即不是9.04到10.4 – 你必须通过9.10。

由于Jaunty和Karmic都已从主存储库中删除,因此最佳升级路径是下载10.04的桌面ISO并进行全新安装。

当然,您应该在安装之前备份/ home中的所有非隐藏文件。 您可以在之后恢复它们。

对于计划清理安装的用户,请按照以下步骤操作。

你需要什么:推荐单独的磁盘,外置硬盘。

  1. 打开终端并定义例如:
    your_mount_point_of_external_HDD=/media/USBDRIVE
  2. sudo tar czvf /media/$your_mount_point_of_external_HDD/mybackup.tar.gz /home #备份你的/ home文件夹。
  3. sudo tar czvf /media/$your_mount_point_of_external_HDD/mysources.tar.gz /etc/apt/ #备份您的存储库。
  4. sudo dpkg --get-selections > /media/$your_mount_point_of_external_HDD/mypackages #列出已安装的软件包
  5. 关闭,断开外部硬盘驱动器,然后安装新系统,添加具有相同名称的用户。
  6. 安装完成后,重新插入外部硬盘并重新输入:
    your_mount_point_of_external_HDD=/media/USBDRIVE
  7. cd /; sudo tar xvzf /media/$your_mount_point_of_external_HDD/mysources.tar.gz
  8. ORIGINAL_DISTRO= grep deb /etc/apt/sources.list | cut -d " " -f 3 | sort | head -n 1 ; NEW_DISTRO= lsb_release -cs ; sudo grep -rl $ORIGINAL_DISTRO /etc/apt | sudo xargs sed -i "s/$ORIGINAL_DISTRO/$NEW_DISTRO/" ORIGINAL_DISTRO= grep deb /etc/apt/sources.list | cut -d " " -f 3 | sort | head -n 1 ; NEW_DISTRO= lsb_release -cs ; sudo grep -rl $ORIGINAL_DISTRO /etc/apt | sudo xargs sed -i "s/$ORIGINAL_DISTRO/$NEW_DISTRO/" #这会将旧源代码名称更改为新代码。 (你可以手动编辑/etc/apt的文件,如果你知道怎么做的话)
  9. sudo apt-get update #这里可能会看到缺少键错误。 要快速绕过它们:
    • sudo apt-add-repository ppa:nilarimogard/webupd8
    • sudo apt-get update
    • sudo apt-get install launchpad-getkeys
    • sudo launchpad-getkeys
  10. dpkg --clear-selections && dpkg --set-selections < /media/$your_mount_point_of_external_HDD/mypackages #使用此function,您将重新安装软件包。
  11. cd / && tar xvzf /media/$your_mount_point_of_external_HDD/mybackup.tar.gz这会将您的/home目录解压缩到他的位置

这是所有的了。 当然,这不是没有错误的,只有当系统有1个用户等时它才有效。

我找到了一种绕过这个问题的简单方法,并且仍然可以在没有CD的情况下在线升级。

快速摘要

  1. 安装Apache
  2. 在/ var / www中获取文件http://changelogs.ubuntu.com/meta-release
  3. 调整下载的文件
  4. 调整系统文件以指向您的服务器和下载的文件
  5. 激活默认的Apache服务器
  6. 干得好!

注意:(更新时间:2014-07-25)另见Rubo77的答案。 它避免安装Apache。

详细资料

1)安装Apache(如果已安装则跳过): sudo apt-get install apache2

2)在本地获取文件

 cd /var/www sudo wget http://changelogs.ubuntu.com/meta-release 

3)更新文件

删除Karmic之后的所有版本,并通过将Karmic替换为0来更改Supported: 0行。

4)调整一些系统文件:

编辑/ etc / update-manager / meta-release并修改:

 URI = http://127.0.0.1/meta-release URI_LTS = http://127.0.0.1/meta-release 

(是的,删除URI_LTS的’-lts’部分)

5)激活apache默认服务器: sudo a2ensite default

5.1)中间状态,检查这是否有效

 cd /tmp wget http://127.0.0.1/meta-release 

5.2)如果错误,请尝试重启Apache2:

 `sudo /etc/init.d/apache2 restart` 

6)升级:查看Ubuntu社区文档中的详细说明 。 这是一个快速摘要:

6.1)请确保您拥有以下sources.list(/etc/apt/sources.list)。

 ## EOL upgrade sources.list # Required deb http://old-releases.ubuntu.com/ubuntu/ jaunty main restricted universe multiverse deb http://old-releases.ubuntu.com/ubuntu/ jaunty-updates main restricted universe multiverse deb http://old-releases.ubuntu.com/ubuntu/ jaunty-security main restricted universe multiverse # Optional #deb http://old-releases.ubuntu.com/ubuntu/ jaunty-backports main restricted universe multiverse #deb http://old-releases.ubuntu.com/ubuntu/ jaunty-proposed main restricted universe multiverse 

6.2)更新软件包列表并升级所有已安装的软件包

 sudo aptitude update && sudo aptitude safe-upgrade 

6.3)执行版本升级

 sudo do-release-upgrade 

替代路径

对于步骤4),请执行以下操作:

 URI = http://changelogs.ubuntu.com/meta-release URI_LTS = http://changelogs.ubuntu.com/meta-release 

然后修改/ etc / hosts以将changelogs.ubuntu.com更改为您自己的服务器IP。 添加一个新行:

 127.0.0.1 changelogs.ubuntu.com 

打扫干净

升级后,您可以删除apache2,恢复系统文件(/ etc / update-manager / meta-release和/ etc / hosts)。

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

但根据您的错误消息,我怀疑您会得到任何不同的结果。 我一直得到同样的错误,我还没有找到解决方案。

你不应该跳过版本。 有一种简单的方法来升级标准方式,即使yakkety是EOL:

首先创建sources.list的副本,然后用“old-releases”替换常规的本地化归档链接:

 cp -a /etc/apt/sources.list /etc/apt/sources.list.old sed -i -e 's/de.archive/old-releases/' /etc/apt/sources.list 

(将de.archive替换为您的国家/地区代码)nano /etc/apt/sources.list

如果适用,请注释掉“合作伙伴”和“安全”的条目:

 #deb http://archive.canonical.com/ubuntu yakkety partner #deb http://security.ubuntu.com/ubuntu yakkety-security main restricted #deb http://security.ubuntu.com/ubuntu yakkety-security universe #deb http://security.ubuntu.com/ubuntu yakkety-security multiverse 

apt-get update

告诉升级者仍然支持当前版本和下一版本 – 该部分不正确,但需要使升级工作。

 nano /var/lib/update-manager/meta-release 

并更改“yakkety”和“zesty”的条目。 将“Supported”设置为“1”,资源将所有链接设置为“old-releases”。

为每个发布步骤运行一次(从yakkety到zesty,然后从兴致到巧妙,……)。

 do-release-upgrade do-release-upgrade ... 

然后再次启用“partner”存储库,如果它之前已启用:

 nano /etc/apt/sources.list 

来源: https : //andreas.scherbaum.la/blog/archives/950-Upgrade-from-Ubuntu-16.10-yakkety-to-17.10-artful.html

自动,远程,增量更新到最新版本

我不会重复别人的答案,但我知道如何实现从旧版本到最新版本的效果。 这需要访问另一台安装了终端和ssh的计算机,以便您可以通过在shell中使用ssh和循环来自动执行该过程。

只是为了扩展之前的答案,这里是如何远程执行相同的接受答案,使用ssh无密码升级,将您的盒子升级到最新版本。 它是从我自己的博客条目中复制的。

所有这些步骤都假设您的包存储库正在运行。 这意味着如果你执行apt-get update,由于版本过时,你不会看到很多404。 你需要先修复它,所以请看这个答案 。

0.更新所有现有包

 sudo apt-get update sudo apt-get upgrade sudo apt-get dist-upgrade 

1.设置无密码执行

将自己添加到可以执行do-release-upgrade的用户列表中,无需输入密码即可通过执行来实现

 sudo visudo -f /etc/sudoers.d/do-release-upgrade. 

并添加以下行,当然替换my-username为您自己:

 my-username ALL=NOPASSWD: /usr/bin/do-release-upgrade 

2.开始增量升级

从计算机注销并执行以下命令。 它将在不提示您输入(接受所有默认答案)的情况下进行升级,等待计算机重新启动,然后再次尝试升级。 它会一直运行,直到您升级到最新版本。

 while true; do ssh my-user@my-server sudo do-release-upgrade -f DistUpgradeViewNonInteractive; sleep 120; done 

3.将配置文件修复为先前的状态

之后,您必须将备份的配置文件移动到之前的位置,因为升级过程已将默认配置放在其位置。

不满意默认答案?

这个人有办法为每个提示准备答案 ,但缺点是你必须知道有多少提示……

打开一个终端,运行sudo update-manager -d然后就关闭了!