是否可以从 32 位安装“升级”到 64 位安装?

是否可以从 32 位安装“升级”到 64 位安装?

根据标题,我想知道在成功完成 32 位设置和后续软件安装后,是否可以更新到 64 位版本。

我知道如何分区(实际上解决方案之一是将/、、、和设置为单独的分区) /etc,并且我知道全新安装比/home肮脏安装好得多,但我想知道是否/如何做到这一点。/var/www/opt

答案1

您会发现全新安装比任何其他不寻常的、晦涩的、不受支持的方法麻烦少得多。

你建议对配置文件、主目录等进行分区可能是最好的主意,并且可以在全新安装中安装与另一个安装中相同的软件包

另一方面,你的要求是可能的,这里有一个小指南基于 Debian 的系统但请记住“这确实是专业级系统管理员的专利”和“从各方面来看,这个程序都是个坏主意。如果它吃掉了你的第一个孩子,请不要哭着来找我”……(祝你好运)

答案2

我将投赞成票,因为这个帖子是“将 ubuntu 升级到 64 位”的最佳结果之一,而所选的答案虽然无疑是明智的选择,但并不是完整的故事。

事实上,可以将 Ubuntu 从 32 位升级到 64 位。去做吧。

我刚刚完成了这样的升级。

话虽如此,“可以”和“应该”这两个词看起来完全不同,升级和全新安装也是如此。你能做到吗?是的。你应该这么做吗?呃……

我花了将近一周的时间才将系统从 32 位升级到 64 位,并且没有导致系统崩溃。其中包括手动修复 aptitude 中 600 多个损坏的软件包,因为自动解析器开始循环,显然是因为 PERL:i386(已安装软件包所需)与 PERL:amd64(您尝试安装的软件包所需)不兼容。

这是我手动安装了一堆软件包,包括正确版本的 PERL,以修复 apt 错误:你看,apt-get -f install(这是获得一个基本正常工作的 64 位系统所必需的)将卸载 PERL32 以安装 PERL64……然后愉快地继续尝试删除 1234 个其他软件包在真正重新安装 PERL 之前不用说,这不是一个好主意,当 apt 系统的很大一部分(实际上还有很多其他东西)依赖于工作的 PERL 时。

重新安装完全从控制台执行(当然是 aptitude FTW),因为控制台几乎只需要一个可以工作的 bash(以及用于 aptitude 的工作 curses,但如果你尝试这样做,curses 会很多,你可以打赌),而 X 需要......太多东西无法相信它在你对系统进行心脏手术时继续工作。

尽管如此,以下 Debian 文章解释了如何对系统进行交叉评级:

https://wiki.debian.org/CrossGrading

这与最初接受的答案中描述的文章不同,因为与此同时事情已经发生了变化,而且大多是朝着好的方向。

基本内容如下:

 dpkg --add-architecture amd64

 apt-get update

 apt-get install linux-image-amd64:amd64

 reboot

 apt-get clean

 apt-get --download-only install dpkg:amd64 tar:amd64 apt:amd64

 dpkg --install /var/cache/apt/archives/*_amd64.deb

此时您将能够执行以下操作:

dpkg --print-architecture 

得到以下行:

amd64

是啊。Ubuntu 认为自己是一个真正的 64 位系统。真可爱。当然,你更了解。

现在你可以运行:

apt-get update

这将下载所有 64 位软件包的列表,您将需要这些软件包来完成系统交叉升级。

此时,您的系统就像什么都没发生过一样,只是您安装任何东西的能力确实被破坏了。

你看,现在你有多个 i386 软件包,但它们没有实际的多架构等效软件包,因此你将陷入各种技术上“不可用”的依赖关系。你已经安装了它们,所以你的系统可以运行,但在这个阶段...我不会再信任 apt 了。

本文认识到修复的必要性,并建议您这样做:

 apt-get -f install

这会导致 apt 尝试修复您刚刚造成的严重混乱。相信我,您刚刚造成了严重混乱。

此过程的一个小问题是,它会导致 apt 系统的部分(和其他关键子系统)中途卸载,导致剩余过程出现错误(您不会说),并让您陷入困境。

幸运的是,你还是可以找到解决办法的。你可以通过以下方式安装现在缺少的软件包:

dpkg -i/var/cache/apt/archives/(package)*amd64.deb

请注意,至少对我来说,网络在某个... 好吧,几个... 点停止工作。这是因为 apt 删除了一些保持网络正常运行所必需的软件包(例如 dhcp 客户端)。

然后,apt 高兴地通知我,它需要下载一些额外的软件包。在没有网络的情况下。

如果这听起来好像你正式被坑了...嗯,那是因为你确实被坑了。

除非你有一个有线网络(您的 WiFi 软件包已被卸载,而且 WiFI 的使用起来相当复杂),了解其配置信息,并且能够使用ifconfig、路由等。

继续尝试,apt-get -f install直到不再出现错误。

apt对系统状态满意后,您可以运行aptitude并手动修复您发现的 600 个损坏的软件包。显然apt,我们aptitude对正常工作的系统有不同的看法。不要问我为什么。

另外,正如我提到的,aptitude如果您尝试让解析器自动执行其工作,解析器将进入无限循环。真的不能责怪它,它被设计为在工作系统上启动并帮助用户添加或删除一些软件包,而不是修复这种令人讨厌的东西。

我花了好几天的时间一点一点地修复这个部分,使用不同的系统偶尔上网,以确保我没有意外地重新格式化家犬。

如果这一切还没有让你气馁,请注意这是我的第二尝试实时升级。

第一个以 结尾mkfs

提示,提示,大提示。或者更确切地说,大提示。

但同样,确实有效到底。

系统正在运行,它主要使用 64 位软件包(有几个例外我最终必须修复),并且可以运行需要 64 位安装的应用程序。

这是可能的

如果这是您唯一的选择,无论出于何种原因,您都可以按照上面描述的步骤进行操作 - 如果您具备所需的领域知识。

如果您不知道sync和之间的区别rsync,如果您不熟悉 insmod,如果您不知道如何使用ifconfig,如果您通常不喜欢使用 aptitude 而不是图形安装程序(我现在想不起它的名字了...)只需备份您的数据并从头开始安装。

这不会给你带来太多痛苦,还能拯救你很多的时间,它将为您提供全新的安装,而不会出现任何意外的剩余问题,从而让您在 11 个月后无法继续使用。

如果你已经备份了那些你不想丢失的东西,并且别无选择 - 或者只是喜欢通过撞东西(特别是撞墙)来学习……那么,你可以尝试一下。

它甚至可能会起作用。

答案3

一旦多架构规范得以实施,这可能是更加合理的做法。 https://wiki.ubuntu.com/MultiarchSpec-- 目前已推迟至 11.04,但请记住,它已推迟了大约 6 个版本。话虽如此,实际进展是在 10.10 中取得的,所以也许这次会发生。

在此之前,别担心。备份您的数据,如果需要,重新分区,然后重新安装。

答案4

现在,您可以使用最新的安装程序(至少我刚刚使用的 13.10 版本)相当轻松地完成此操作。启动 64 位映像 DVD(或 USB 驱动器或其他),然后选择第一个选项重新安装,保留您的个人文件。即使您没有单独的分区,此方法也可以正常工作/home

这将重新安装包括应用程序在内的大部分系统,但需要事先列出已安装的软件包,然后才能从 repo 重新安装它们,因此只要软件包当时有 64 位版本可用,您重新启动时应该会得到大部分应用程序。根据我的经验,有几个应用程序没有安装 - 主要是那些通过第三方 repos 安装的应用程序,例如 Google Chrome - 但之后手动安装这些应用程序并不需要很长时间。

相关内容