恢复 Ubuntu 安装 - Ubuntu 在“sudo apt-get install -f”之后自我毁灭

恢复 Ubuntu 安装 - Ubuntu 在“sudo apt-get install -f”之后自我毁灭

更新程序(我猜)在面板上放置了一个禁止输入样式的警告图标,通知我某些软件包依赖项不符合标准。此后,升级仅是部分升级。对话框建议我sudo apt-get install -f。我这样做是希望 app-get 能够满足依赖关系并替换损坏的文件,并观察它系统地删除 linux 的每个组件,包括我安装的内容和核心 ubuntu 软件包。我只能假设在这个阶段这是为全新安装做准备,但当然,我现在知道得更多了——如果您发现 apt-get 警告您即将删除数百个软件包并要求您输入复杂的确认字符串,请在继续之前寻求建议。我离题了。这是 12.04 的 64 位安装。剩下的就是 grub 指向硬盘上的几个 windows 恢复分区。值得庆幸的是,Ext4 分区可以通过启动棒访问。

编辑:

我登录了装有 64 位操作系统的机器,可以看到 apt-get 在修复后留下的文件结构。我的第一反应是从操作系统运行安装,但它似乎想要进行另一次安装而不是修复。我的问题是:有没有办法恢复当前安装,以便如果我重新安装我已有的软件包,它们会采用原始​​设置?我特别担心丢失来自 evolution 的电子邮件 - 其余的我可能会重新整理。

至于使用 PPA,我不确定你的意思。我通常使用 Ubuntu 软件中心来安装软件,尽管我曾使用终端脚本按照各种网站上的指南成功添加新的存储库和软件。我最近所做的更改是降级 Wine,以尝试安装和运行 excel2007(我认为这是必要的,因为我有 VBA 工作要做)。安装程序已停止,必须终止。我想知道这是否破坏了保存软件包安装结构模型的数据库。

我也想知道这场灾难是如何发生的。我看到知情人士sudo apt-get install -f在类似情况下推荐这是一种相当无害的治疗方法。

感谢您的关注,

托尼·马丁

附言:请原谅原帖中的抱怨。当你的胃里有个大洞时,很难理性地写作。

答案1

这种灾难往往发生在存在损坏的软件包(通常是由于不存在依赖项或用户暂停了某个特定软件包版本而无法安装)或用户从 PPA 安装了冲突的依赖项时。 -f 标志告诉 apt-get 寻找任何可以的解决方案来从系统中删除所有损坏的软件包。在这种情况下,“解决方案”是删除几乎所有软件包,因此您一定在某个地方遇到了非常低级别的冲突。它会查看哪些依赖项似乎无法安装,然后安装或删除软件包,直到可以安装该依赖项或所有冲突的软件包都消失为止。我曾经因为 Libreoffice 的打包版本不正确而删除了所有 GUI 软件,直到 X。

从这张图片中可以看出,来自 PPA 的坏 wine 包确实会毁掉整个系统: 相当一半的系统依赖于 libc6。 如果通过 PPA 将 libc6 替换为另一个版本,这确实会导致 APT 删除整个系统。我认为,几乎所有东西最终都会依赖于 libc6,包括内核。我不敢肯定这就是原因,只是用这个作为例子来说明依赖关系是如何相互关联的。

您可以在重新安装之前使用 LiveUSB 复制文件,或者直接使用高级分区设置重新安装。我建议直接使用高级设置重新安装,因为这样可以省去从磁盘复制任何文件的步骤,只要您没有在 /home 和 /srv 之外存储任何内容即可。

您需要确保您的 ext4 文件系统已设置为挂载到“/”,并且“格式”下的框是不是检查如下图所示:

在此处输入图片描述

任何未存储在 /srv 或 /home 中的内容都将已删除

如果您希望使用相同的用户名,则应在重新安装之前移动或重命名您的主文件夹,以便可以使用 /etc/skel 中的新配置重新创建它。然后,您可以在重新安装后将配置文件和数据从移动位置复制到其正确位置。这是必要的,因为某些程序(例如 Firefox)不会自动从旧安装中获取配置文件,即使它们在您第一次登录时已经在主文件夹中。某些程序需要先运行,退出,然后复制其配置文件。

我非常确定,对于 evolution,您只需将 .evolution 文件从旧目录复制到新目录,它就可以正常工作。您可能需要像我上面提到的那样,在复制之前运行 evolution 一次并关闭它。

根据你对如何正确解决此问题的评论,apt-get 手册(关于 -f 的部分)建议使用dpkg --remove $PACKAGE手动删除导致问题的软件包。这应该允许 apt 再次运行,因为尝试拉入不存在或无法安装的依赖项的包将会消失。

导致您的机器死机的问题纯属偶然,在稳定版 Ubuntu 上根本不应该发生这种情况。存储库系统经过组织,可以防止这种情况发生,但添加随机 PPA X 会破坏原本完美的系统。我建议您仔细检查添加的 PPA 的内容以及从中安装(和升级)了哪些软件包。多个 PPA 将升级重要的系统软件包,以使其包含的软件正常工作。这很好,直到 PPA 中出现较新的依赖项冲突使用 repo 中的旧版本。此时 APT 将始终安装最新版本,然后,您的系统将不会升级任何软件包,因为 Ubuntu repo 软件仍然需要旧库版本,而旧库版本将不会被安装。

祝你好运。如果你有疑问或者我可以改进这个答案,请发表评论。

答案2

添加 repos 和 wine 降级可能会导致问题。也许你重新安装后,你可以使用玩转Linux调整 Word?它包括自动设置并自动选择正确的 Wine 版本和设置。它不会过多地干扰 APT,因此更安全。虽然它涉及使用存储库,但只要选择了正确的 Ubuntu 版本,这个存储库就可以很好地工作,并且不会引起问题。至于恢复设置,您可以从实时 CD 安装分区,然后在主文件夹中按 Ctrl+H 并将文件夹复制.evolution到闪存驱动器。您还可以复制您可能需要的其他文件夹,然后在新安装中恢复它们。

我已经用 Office '07 测试过 PlayOnLinux,它运行良好。它使用 Wine 作为可执行文件,并且不使用 APT 来获取 Wine 版本。

答案3

应该根据数据菜单中的选项“备份 evolution”来备份 evolution。仅仅复制 .evolution 并不是恢复旧配置的一种非常安全的方法。

答案4

相关内容