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

OHL*_*ÁLÁ 147 downgrade release-management

我刚刚安装了一个新版本的 Ubuntu,我想将它回滚到以前的版本。

我怎样才能做到这一点?这甚至可能吗?

Ser*_*gey 91

在我的语言中有一句话可以粗略地翻译为“通过向相反方向旋转绞肉机的手柄,您无法将肉糜变回肉” “你不能通过向相反方向旋转绞肉机的手柄来将肉糜变回肉” :)

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

  • @GeorgesDupéron:你是对的,没有物理定律可以让降级变得不可能,所以完全有可能构建一个可以将系统升级/降级到任何版本的工具。但是,没有这样的工具,所以我的回答代表现实生活中的 Ubuntu 及其升级工具。 (12认同)
  • 我不同意,升级系统就是用新包替换旧包,这应该是一个可逆的过程(用旧包替换新包)。在升级过程中没有内在的**需要**破坏任何东西,只是我们使用的大多数系统并不真正关心降级并且不支持它(好吧)。 (11认同)

Oli*_*Oli 73

在一定程度上降级版本是可能的。通过足够的战斗,它可以完成(有关技术细节,请参阅此处的其他一些答案)。

但是,您最终得到的结果与升级前的结果不同。在升级过程中,会进行某些单向更改以使新包满意,降级它们不会逆转这些编辑。根本不可能保证降级会奏效,更不用说它是否稳定了。

简而言之,您最简单的选择始终是重新安装。不要将其视为一件苦差事,而是将其视为减少软件包并更好地配置事物的好机会。

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

  • 首先测试 LiveCD。如果您要立即遇到硬件问题,这应该让您知道。
  • 在你做任何事情之前备份。我知道每个人和他们的母亲都已经告诉你这样做了,但是如果你认为你会遇到问题,这真的很重要。如果你不能离开你的机器超过 20 分钟,考虑一些全磁盘克隆工具,比如Clonezilla,这样你就可以恢复以前版本的磁盘。还有其他工具可以提供类似的结果。
  • 将您的数据分开。有你/home/在同一分区安装中是一个头痛的食谱,如果你不断升级/降级的事情。将它推送到另一个磁盘或至少另一个分区,这样当您确实需要重新安装时,您只需要设置安装即可。
  • Ubuntu QA 团队修复了一个严重的降级错误。请务必仔细阅读,因为有些人会建议您只保留旧 CD 并对其进行“升级”,但这是一个坏主意。

  • 您不需要单独的分区,您可以在损坏的系统上重新安装,请参见此处:http://askubuntu.com/questions/247/whats-your-recommendation-on-drive-partitioning-schemes-for-a -desktop-and-home-s/3603#3603 (7认同)

Gil*_*il' 40

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

通常,apt 更喜欢安装最新版本的软件包。但是您可以通过固定来改变这一点:您可以声明旧版本中的软件包比已安装的软件包具有更高的优先级,以便在您这样做时它们将被降级aptitude dist-upgrade

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

Package: *
Pin: release v=10.04
Pin-Priority: 1001
Run Code Online (Sandbox Code Playgroud)

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


Rol*_*Xor 10

他们说,“永远不要说永远”和“没有什么是不可能的”——这两个都是真的,但在你的情况下不是。我建议您要么备份数据并重新安装,要么坚持下去。随着时间的推移,系统应该变得越来越稳定。

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

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


小智 7

您可以手动完成。

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

sudo dpkg --get-selections | grep '[[:space:]]install$' | \awk '{print $1}' > package_list
Run Code Online (Sandbox Code Playgroud)

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

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

cat package_list | xargs sudo apt-get install
Run Code Online (Sandbox Code Playgroud)

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


psu*_*usi 5

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

此时如果要回11.04,需要重新安装,选择手动分区。配置分区时不要选中格式框,您的用户文件应保持不变。


swi*_*ift 5

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

首先不要忘记备份:您的home目录可以在任何其他您可能拥有个人数据的地方。

  • 首先备份您的文件;) (3认同)

tho*_*ter 5

回滚可能对某些单独的软件包工作正常,但我永远不会期望整个发行版的大规模回滚会给你留下任何东西,而不是一个可怕的损坏系统(或者一个表面上看起来很糟糕的系统)很好,但是当你发现它越来越坏时,奇怪的事情不断浮出水面)。

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

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

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