我可以在升级时跳过版本吗?
我目前正在使用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
- ALT + F2和类型’gksu update-manager -d’打开更新管理器。 -d用于检查是否存在开发版本。 由于11.04仍在开发中,它将出现在Update Manager的上半部分,说新的Ubuntu版本11.04,带有一个UPGRADE按钮
- 单击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的升级如下所述:
- 从http://releases.ubuntu.com/karmic/下载
ubuntu-9.10-alternate-i386.iso
到你的主目录(如果你有64位系统,用amd64
替换i386
用ubuntu-9.10-alternate-i386.iso
用kubuntu
取代ubuntu
) -
打开终端并运行:
sudo mount -o loop ~/ubuntu-9.10-alternate-i386.iso /media/cdrom
-
执行以下命令开始升级:
gksu "sh /media/cdrom/cdromupgrade"
如果您使用的是KDE(Kubuntu):
kdesudo "sh /media/cdrom/cdromupgrade"
- 重启
从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中的所有非隐藏文件。 您可以在之后恢复它们。
对于计划清理安装的用户,请按照以下步骤操作。
你需要什么:推荐单独的磁盘,外置硬盘。
- 打开终端并定义例如:
your_mount_point_of_external_HDD=/media/USBDRIVE
-
sudo tar czvf /media/$your_mount_point_of_external_HDD/mybackup.tar.gz /home
#备份你的/ home文件夹。 -
sudo tar czvf /media/$your_mount_point_of_external_HDD/mysources.tar.gz /etc/apt/
#备份您的存储库。 -
sudo dpkg --get-selections > /media/$your_mount_point_of_external_HDD/mypackages
#列出已安装的软件包 - 关闭,断开外部硬盘驱动器,然后安装新系统,添加具有相同名称的用户。
- 安装完成后,重新插入外部硬盘并重新输入:
your_mount_point_of_external_HDD=/media/USBDRIVE
-
cd /; sudo tar xvzf /media/$your_mount_point_of_external_HDD/mysources.tar.gz
-
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
的文件,如果你知道怎么做的话) -
sudo apt-get update
#这里可能会看到缺少键错误。 要快速绕过它们:-
sudo apt-add-repository ppa:nilarimogard/webupd8
-
sudo apt-get update
-
sudo apt-get install launchpad-getkeys
-
sudo launchpad-getkeys
-
-
dpkg --clear-selections && dpkg --set-selections < /media/$your_mount_point_of_external_HDD/mypackages
#使用此function,您将重新安装软件包。 -
cd / && tar xvzf /media/$your_mount_point_of_external_HDD/mybackup.tar.gz
这会将您的/home
目录解压缩到他的位置
这是所有的了。 当然,这不是没有错误的,只有当系统有1个用户等时它才有效。
我找到了一种绕过这个问题的简单方法,并且仍然可以在没有CD的情况下在线升级。
快速摘要
- 安装Apache
- 在/ var / www中获取文件http://changelogs.ubuntu.com/meta-release
- 调整下载的文件
- 调整系统文件以指向您的服务器和下载的文件
- 激活默认的Apache服务器
- 干得好!
注意:(更新时间: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
然后就关闭了!
- 关于compiz,libkf5akonadisearch-bin包的Unknown Multi-Arch类型从14.04升级到16.04的错误
- 无法更新到17.10:/ boot上没有足够的可用空间
- 14.10到15.04升级,现在我无法断电或重启!
- 我应该现在每天安装11.10还是等待?
- Ubuntu Server 10.04.4 LTS可以升级到NON-LTS吗?
- 从12.04升级到12.10时如何解决“无法计算升级”问题?
- 我使用的是beta还是稳定的?
- 更新管理器不提供新版本的升级
- linux-image-3.13.0-44-generic&linux-image-extra-3.13.0-44-generic 的问题