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

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

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

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

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

每个包管理器处理不同类型的包。例如,DNF 和 YUM 与 Red Hat Package Manager (RPM) 一起下载和安装 RPM 包。同样,APT 充当基于 Debian 的发行版上基本 dpkg 软件的前端包装器。

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

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

  • 键盘上的 Ctrl + Alt + T打开终端并输入:
    sudo apt --fix-missing update
  • 从可用来源更新系统的软件包列表:
    sudo apt update
  • 现在,使用-f标志强制安装损坏的软件包。APT 将自动搜索您系统上的损坏包并从官方存储库中重新安装它们。
    sudo apt install -f

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

  • 强制 dpkg 重新配置所有已解压但需要进行配置的挂起包。命令中的-a标志代表All
    sudo dpkg --configure -a
  • 管道 grep 与 dpkg 以获取所有标记为dpkg必需的包的列表。
    sudo dpkg -l | grep ^..r
  • 使用--remove标志删除所有损坏的包。
    sudo dpkg --remove --force-remove-reinstreq
  • 使用apt clean 清理包缓存并安装脚本。
    sudo apt clean
  • 现在,使用以下命令更新系统的软件包列表:
    sudo apt update

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

  • 使用-V标志验证系统上的所有软件包。
    sudo rpm -Va
  • 您将看到一个长列表,其中包含系统上所有已安装的软件包。
  • 重新安装您认为可能导致损坏包问题的包。
    sudo dnf --refresh reinstall packagename

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

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

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

  • 标签: Linux 包管理器