当前位置: 首页 > 科技观察

如何在Linux中修复损坏的软件包?_0

时间:2023-03-14 14:41:04 科技观察

[.com速译]像Apt和DNF这样的Linux包管理器非常强大和直观,但这并不意味着它们不会出错。有时软件包安装会出错,您必须收拾残局。包管理器能够修复损坏的包并跳过损坏的更新,让系统重新启动并运行并避免未来的麻烦。本文介绍了如何在Linux中修复损坏的包。在大多数情况下,这些提示和技巧应该可以帮助您解决问题。它们都很常见,但每种情况都不同,因此在尝试自己解决问题时请记住这一点。FixingBrokenPackagesinUbuntuApt有几个标志,可用于修复丢失的依赖项或在安装过程中由于某种原因损坏的包。一个常见的场景是安装第三方.deb,并发现它具有您不了解的依赖项。这些依赖项可能无法自行获取并且dpkg会抱怨缺少包。无论如何,您可以尝试以下步骤。图1首先,运行更新以确保没有更新版本的所需包。sudoaptupdate--fix-missing接下来,您可以尝试强制Apt查找并修复任何缺失的依赖项或损坏的包。实际上,这将安装所有丢失的包,并修复现有的安装。sudoaptinstall–f包安装可能出错的另一个地方是在配置过程中。是dpkg,而不是Apt,在幕后负责这个,所以dpkg是在配置过程中损坏包时用来修复包的工具是理所当然的。图2首先尝试强制dpkg重新配置所有损坏或部分配置的包。sudodpkg--configure-a如果这不能解决问题,您可以采用更强力的方法。首先列出所有被dpkg标记为重新安装的包。sudodpkg-l|grep^..r你应该在这里看到有问题的包。只要没有任何似乎不属于这里的包,你就可以强行删除损坏的包。sudodpkg--remove--force-remove--reinstreqdpkg完成后,尝试用Apt清理它。sudoaptcleansudoaptupdate运气好的话,他们会让你回到开始的地方。它不会给你你试图安装的损坏的包,但至少Apt可以再次完成它的工作。永久DPKG锁有一个不太常见的问题:可笑的dpkg锁会阻止你做任何事情。每当您尝试使用Apt或dpkg时,都会收到一条错误消息,指出另一个应用程序已经在使用Apt或dpkg,但事实并非如此。事实上,删除阻止您使用Apt并返回做您想做的事情的锁定文件很容易。有时,在错误安装后,这些锁定的文件仍然存在,从而防止文件被自动删除。在这种情况下,您需要自己动手。sudorm/var/lib/apt/lists/lock另外,从缓存中删除锁。sudorm/var/cache/apt/archives/lock在Fedora/CentOS/RHEL中修复损坏的软件包在Fedora/CentOS/RHEL中修复损坏的软件包不太常见,因为yum和dnf可以很好地确保软件包正确安装。但是,有时仍然存在包使用问题。在基于rpm的系统上执行此操作的命令是:sudorpm–Va图3-V选项用于验证,这意味着它将检查安装文件上的信息并将其与存储在rpm数据库中的信息进行比较。这并没有太大帮助,因为它通常会提供一长串文件,但至少如果您在使用应用程序时遇到问题,可以从一个地方开始。您可以在该列表中看到的任何可能有问题的软件包上运行dnfreinstall。sudodnf--refreshreinstallPACKAGE_NAME这会使所有元数据过期,以便它搜索您为包的新版本启用的每个存储库。如果您发现该包有损坏的依赖关系,DNF可能会告诉您使用--skip-broken标志。这也可能意味着您没有启用特定的存储库来提取依赖项,因此您可能不得不四处寻找。结语希望这些修复方法能奏效,让你可以正常使用Linux系统。请记住,处理完全失控的情况的最佳方法是尝试回到您之前的状态。除非您确切地知道自己在做什么,否则不要增加麻烦。原标题:HowtoFixBrokenPackagesinLinux,作者:JohnPerkins