如何将Ubuntu回滚到以前的版本?


129

我刚刚安装了新版本的Ubuntu,并且想将其回滚到以前的版本。

我怎样才能做到这一点?那有可能吗?


2
是ubuntu Wiki上的一个。
Quazi Irfan

这就是为什么人们真的希望这种情况发生并成功的原因之一:回顾我们如何组合Linux系统。正在引导另一个操作系统或从同一文件系统发布?这可能是过去的问题。
LiveWireBT 2014年

Answers:


65

在一定程度上可以降级发行版。进行足够的战斗就可以完成(有关技术细节,请参见此处的其他一些答案)。

但是,最终结果与升级前的结果不同。在升级过程中,为了使新软件包满意而进行了某些单向更改,降级它们不会撤消那些编辑。不可能保证降级将完全起作用,更不用说它会保持稳定了。

简而言之,最简单的选择始终是重新安装。不要把它当作琐事,而把它看作是精简程序包并更好地进行配置的好机会。

如果您想将来进行测试,并且担心可能会遇到问题,请务必确保执行以下操作:

  • 首先测试LiveCD。如果您将立即遇到硬件问题,请告知您。
  • 做任何事情之前先备份。我知道每个人和他们的母亲都已经告诉过您这样做,但是如果您认为自己会遇到问题,那真的很重要。如果您无法在超过20分钟的时间内没有使用计算机,请考虑使用某些全磁盘克隆工具(例如Clonezilla),以便仅还原磁盘的早期版本。还有其他工具可以提供类似的结果。
  • 将您的数据分开。有你/home/在同一分区安装中是很头疼,如果你不断升级/降级的事情配方。将其推入另一个磁盘或至少另一个分区,以便在确实需要重新安装时,实际上只需要设置安装。
  • Ubuntu QA团队修复了一个严重的降级错误。确保您已仔细阅读,因为有些人会建议您只保留旧CD并“升级”到CD,但这不是一个好主意。

7
您不需要单独的分区,只需在损坏的系统上重新安装即可,请参见此处:askubuntu.com/questions/247/…–
Jorge Castro

严重错误似乎已修复为12.04(精确)。因此,此问题仍将影响11.0411.10,这两种产品均已终止寿命。 有人可以确认吗?
david6 2013年

1
是否可以仅用所需的发行版覆盖系统文件?例如,如果我使用12.10并想返回到12.04或更早版本,而不备份任何内容,是否有可能仅用全新安装覆盖系统文件。
Quazi Irfan

@iamcreasy这就是我的第二段要处理的内容。升级通常是转型。您所描述的都是我不备份就不会做的事情。
奥利(Oli)

1
我说的只是覆盖系统文件。重新安装操作系统而不格式化硬盘。
Quazi Irfan

84

在我的语言中有一句话可以粗略地翻译为“您不能通过沿相反的方向旋转切碎机的手柄将切碎的肉切成肉” :)

在此处输入图片说明

升级过程是单向的-在安装新版本的软件时,软件包的安装后脚本会修改您的配置文件和设置,以使用新软件所需的新格式。基本上,没有相反的过程-使新的配置文件与旧软件兼容。


9
我不同意,升级系统是用新软件包替换旧软件包,这应该是一个可逆的过程(用旧软件包替换新软件包)。升级过程中并不需要破坏任何东西,只是我们使用的大多数系统并不真正在意降级,也不支持它。
2013年

11
@GeorgesDupéron:没错,没有物理定律会使降级成为不可能,因此完全有可能构建可以将系统升级/降级到任何版本的工具。但是,没有这样的工具,所以我的回答代表现实生活中的Ubuntu及其升级工具。
谢尔盖

@Sergey :)好一个。
瑞典人

36

在打包工具(apt)级别上是可能的。但是生成的系统可能不等同于重新安装,并且您可能会在此过程中遇到错误。这是因为许多软件包都包含对升级的特定支持(例如,处理配置文件中的更改),但不支持降级。

通常,apt倾向于安装软件包的最新版本。但是,您可以通过固定来更改此设置:您可以声明旧发行版中的软件包比已安装的软件包具有更高的优先级,因此当您这样做时,它们将被降级aptitude dist-upgrade

将您的内容更改/etc/apt/sources.list为仅包含旧版本(编辑文件或使用您喜欢的GUI),然后运行aptitude update。然后编辑/etc/apt/preferences(在apt_preferences手册页中记录),并添加以下几行(降级为透明):

Package: *
Pin: release v=10.04
Pin-Priority: 1001

然后运行aptitude dist-upgrade。每个软件包的优先级都大于1000,因此10.04中存在并安装在系统上的每个软件包都将降级。您必须手动删除10.04中没有的软件包。它们将被适当地列在“过时的和本地创建的软件包”下。


两次运行do-release-upgrade(第一次通话已挂起)对我有帮助。因此,我可以将apt列表还原为正确的版本。
PeterM

9

他们说:“永不言不”和“没有什么是不可能的”-两者都是正确的,但对于您而言并非如此。我建议您备份数据并重新安装,或将其保留。随着时间的流逝,该系统将变得越来越稳定。

您还可以在现有安装的顶部重新安装(它将保留您的文件)。

根据经验,请尽量避免在生产系统上升级到开发版本(特别是如果您不是测试人员/开发人员时)。


7

您可以手动执行。

首先生成您在系统上安装的列表。您可以通过在终端中键入以下内容来执行此操作。

sudo dpkg --get-selections | grep '[[:space:]]install$' | \awk '{print $1}' > package_list

将/ home和/ etc文件夹复制到备份媒体。

重新安装ubuntu 10.04。恢复您的备份(请记住设置正确的权限)。然后运行以下命令以重新安装您之前拥有的所有程序。

cat package_list | xargs sudo apt-get install

请注意,对于不兼容的设置,您可能必须对/ etc和/ home文件夹进行一些清理。


5

这就是为什么您不应该将主安装升级到开发版本的原因。如果要测试开发版本,则应在单独的分区上进行测试,以便在出现问题时可以重新启动到稳定版本。

此时,如果您想回到11.04,则需要重新安装它,然后选择手动分区。在配置分区时,请勿选中格式框,并且用户文件应保持不变。


5

对于某些软件包,回滚可能会很好地隔离工作,但是我永远都不会期望整个发行版的大规模回滚会给您留下除可怕破坏的系统(或从表面上看起来很糟糕的系统)之外的任何东西。很好,但是随着您发现它越来越破碎,奇怪的事情不断出现)。

APT只是为了尽可能避免回滚而设计的,而组成Ubuntu(和Debian,就此而言)发行版的软件包并不是以平滑的回滚为设计目标而设计的。

除非您拥有可靠的整个系统备份,否则您真正需要做的是确保备份整个主目录(并可能还要在单独的分区上),从所选版本的CD映像重新安装,然后开始从主文件夹还原数据。你甚至可能需要选择恢复点文件的情况下,在你的home目录中的已成为习惯了新的版本不太与旧版本很好地工作。

在执行此操作之前,您可能需要仔细阅读已安装的软件包并写下所依赖的软件包,以便重新安装它们。有一些工具可以备份和恢复已安装软件包的列表,但是如果您需要在不同版本之间进行操作,由于所需/包含的软件包可能已更改,因此我通常不建议这样做。


5

简单的方法是从先前版本的CD / DVD或USB闪存盘启动,然后通过覆盖现有安装来重新安装Ubuntu。

不要忘了先备份:您的home目录可能存在其他任何个人数据。


2
首先备份文件;)
Achu 2012年

3

简而言之:不,没有。抱歉...(这些是升级到测试版本的危险!)


2
如果我知道Ubuntu像以前一样严重破坏了Netbook Remix,我根本就不会升级。重新安装不是主要问题,但我仍然很乐意发布此问题。

@Diago出于好奇,这完全不喜欢新界面吗?还是只是认为还没有完成?
8128

两者都有。从非技术用户的角度来看,我对可用性的缺乏感到沮丧。我可以找到解决方法,并安装其他软件来获得功能,但是看不到一个完整的新手将如何生存。我认为,如果他们计划在10月的最后期限之前需要做更多的工作。
By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.