如何在 Linux 上查找和修复损坏的软件包

Linux 中的包管理器允许您控制包的安装和删除。 除此之外,包管理器还可以帮助您查找系统上损坏的包并重新安装它们以解决与 Linux 包相关的各种问题。

如果您不知道使用哪些命令来查找和修复 Linux 中损坏的软件包,那么本指南适合您。 我们将简要讨论损坏的软件包,如何检查系统是否包含损坏的软件包,以及如何正确重新安装它们。

什么是破损的包裹?

当您在 Linux 中安装新包时,系统的包管理器负责整个安装过程。 这些包管理器具有处理异常和错误的内置方法。 但有时,如果出现意外问题,安装会停止并且未安装完整的软件包。 这样的包在 Linux 中被称为损坏的包。

如果 APT 等软件包管理器在系统上发现损坏的软件包,则不允许进一步安装软件包。 在这种情况下,修复破损的包裹是唯一的选择。

如何查找和修复损坏的包

每个包管理器都处理不同类型的包。 为了 example、DNF 和 YUM 与红帽软件包管理器 (RPM) 一起下载和安装 RPM 软件包。 同样,APT 充当基于 Debian 的发行版上基本 dpkg 软件的前端包装器。

在 Debian 上重新安装损坏的软件包

APT 是每个基于 Debian 的发行版中预装的默认软件包管理器。 除了 APT,Debian 和 Ubuntu 用户也可以使用 dpkg 手动下载和安装软件包。

要使用 APT 在基于 Debian 的发行版上修复损坏的软件包:

  1. 按下打开终端 Ctrl + Alt + 在键盘上输入:
    sudo apt --fix-missing update
  2. 从可用来源更新系统的软件包列表:
    sudo apt update
  3. 现在,使用 -F 旗帜。 APT 将自动在您的系统上搜索损坏的软件包并从官方存储库重新安装它们。
    sudo apt install -f

如果上述步骤对您不起作用,那么您可以尝试使用 dpkg 解决问题。

  1. 强制 dpkg 重新配置所有已经解包但需要进行配置的挂起包。 这 -一种 命令中的标志代表 全部.
    sudo dpkg --configure -a
  2. 使用 dpkg 管道 grep 以获取所有标记为的包的列表 必需的 通过 dpkg。
    sudo dpkg -l | grep ^..r
  3. 使用 – 消除 标记删除所有损坏的包。
    sudo dpkg --remove --force-remove-reinstreq
  4. 清理包缓存并使用安装脚本 干净.
    sudo apt clean
  5. 现在,使用以下命令更新系统的软件包列表:
    sudo apt update

修复损坏的包 Fedora/CentOS 和 RHEL

尽管 YUM 和 DNF 在自动管理损坏的软件包方面非常出色,但有时确实会出现问题,因为 Linux 系统上安装了数千个软件包。 在这种情况下,您可以使用 RPM(用于 Fedora 和 CentOS)来快速解决此类问题。

  1. 使用 -V 旗帜。
    sudo rpm -Va
  2. 您将看到一个包含系统上所有已安装软件包的长列表。
  3. 重新安装您认为可能导致损坏包问题的包。
    sudo dnf --refresh reinstall packagename

上面的步骤非常不方便——从数百个列表中确定哪个包导致了问题是令人厌烦的。 尽管 RPM 是一个强大的包管理器,而且您很少会遇到此类问题,但知道如何解决这些问题仍然很重要,以防您在不久的将来遇到类似情况。

在 Linux 发行版上管理软件包

Linux 上的包管理器能够处理大多数问题,包括安装失败。 但有时,会出现各种问题,只能凭直觉解决。 修复损坏的软件包的解决方案包括几个步骤——识别损坏的软件包、重新安装并更新系统的软件包列表。

互联网上有无数的 Linux 发行版值得一试,但在内心深处,每个发行版都有相似的基础。 桌面环境通过提供独特的用户体验将每个发行版区分开来。 如果您最终决定继续使用 Linux,那么选择适合您口味的理想桌面环境应该是您的首要任务。