如何在 Ubuntu Linux 中删除损坏的软件包

作为一名专业的 Linux 用户,我需要在我的 Ubuntu 上安装、测试和删除大量的软件包, Fedora和 Arch 系统。 安装和删除软件包很简单,但不知何故,如果您在 Ubuntu 机器上遇到损坏的软件包问题,那将是一场浩劫。 如果你不能从你的 Ubuntu 机器上删除损坏的包,你可能会在以后安装它时遇到问题。 此外,损坏的包也会占用 Ubuntu 文件系统中的一些空间。

在 Ubuntu Linux 中删除损坏的软件包

在 Ubuntu 中,由于依赖错误、存储库错误、锁定文件系统或其他问题,可能会出现损坏的包问题。 有时,您可能还需要以 root 用户身份执行命令以从 Ubuntu 系统中删除损坏的软件包。

通常,软件包安装在根文件系统中; 当您拥有 root 权限并且您与安装该工具的任何文件或目录不匹配时,它可能会损坏。

成为损坏包的另一种方法是从系统中删除包存储库。 您可以使用 aptitude 命令或 dpkg 从系统中删除应用程序的命令,但它们不会完全删除损坏的软件包。 在这篇文章中,我们将看到如何从 Ubuntu 系统中删除损坏的软件包。

1. 在 Ubuntu 上清理特定软件包

当您确切地知道哪个软件包在您的 Ubuntu 机器上存在损坏问题时,您可以使用此方法删除该软件包并清理磁盘空间。 首先,您需要清理并删除该应用程序的缓存文件。

例如,您可以运行以下命令来清除 Ubuntu 系统上 NodeJS 损坏包的缓存文件。

sudo rm -rf /var/cache/apt/archives/nodejs_0.10.28-1chl1~trusty1_amd64.deb

现在运行 auto clean 命令释放磁盘空间,然后更新和升级系统存储库。

sudo apt-get autoclean
sudo apt-get update
sudo apt-get upgrade

您还可以使用 move 命令将应用程序缓存文件移动到临时文件中。 然后,您可以通过 Debian 软件包管理器 (dpkg) 工具删除损坏的软件包。 例如,以下命令将删除 Ubuntu 系统上损坏的 Ruby 版本管理器 (RVM)。

sudo mv /var/lib/dpkg/info/rvm.* /tmp/
sudo dpkg --remove --force-remove-reinstreq rvm

2.解决锁问题

有时,在 Ubuntu 或 Debian 发行版上安装软件包后,该软件包会将一些数据作为存档存储在文件系统中。 因此,当您尝试删除或删除该文件时,您会收到一条错误消息,指出该文件正在被另一个工具或另一个程序使用。

通常,当您从机器中删除工具时,依赖文件和其他插件也应该被清除。 但是,如果某些软件包选择不离开您的计算机怎么办! 请通过以 root 访问权限运行以下删除命令来删除锁定的 Debian 软件包文件。

sudo rm /var/lib/apt/lists/lock
sudo rm /var/cache/apt/archives/lock

3.强制删除损坏的包

此方法将指导您强制删除 Ubuntu 系统上的损坏包。 强制删除是必需的,因为在系统上安装某些软件包时,它恰好安装在根目录中。 但是,您可以运行以下命令 dpkg 下面给出的命令从系统中删除任何损坏的软件包。 请注意将 替换为您损坏的包名称。

sudo dpkg --remove --force-remove-reinstreq <packagename>
sudo apt-get update

您还可以通过在终端 shell 上运行以下 GREP 命令在 Ubuntu 系统上生成可移动软件包的列表。 然后通过执行下一个删除它们 dpkg 命令。

sudo dpkg -l | grep ^..r
sudo dpkg --remove --force-remove --reinstreq

这是您可能需要知道的另一件事,在 Ubuntu 系统上删除损坏的软件包后,请运行 aptitude 命令来更新系统存储库。

sudo apt update --fix-missing update

现在,运行以下带有 F 标志的 aptitude 命令,以查看哪些软件包已自动安装并且不再需要。 稍后,您也可以对这些应用程序采取措施。

$ sudo apt-get install -f

4. 在 Ubuntu 中自动清理损坏的包

auto clean 和 auto-remove 命令实际上不会从系统中删除损坏的包。 尽管如此,它确实有助于释放以前安装/删除的应用程序占用的空间。

通常,开发人员会设计一个应用程序,以便即使从系统中删除应用程序后,应用程序文件仍保留在您的文件系统中。 在某种程度上,当您以相同的方法重新安装相同的应用程序时,这些实际上很有帮助。

但是,在终端 shell 上运行以下 clean 和 auto-clean 命令,通过擦除缓存文件来清理系统上未使用的空间。

sudo apt-get autoclean
sudo apt-get clean

现在,运行以下命令以自动删除具有 root 访问权限的命令,以删除不必要的应用程序和依赖项数据。

sudo apt-get autoremove

sudo  apt-get 自动删除

清理系统后,请运行存储库更新命令以顺利运行您的电脑。

sudo apt-get update

5.通过恢复模式修复损坏的包

在这个方法中,我们将展示在 Ubuntu 系统上删除损坏包的最常用的方法。 我们将使用 Ubuntu 恢复模式来修复损坏的软件包。 因此,从技术上讲,这种方法不会指导您删除损坏的应用程序,但它会执行一些也修复损坏的应用程序的任务。 当。。。的时候 dpkg 工具无法修复软件包,然后您可以将其从系统中删除。

首先,启动你的 Ubuntu 系统并按下 转移 按钮进入恢复模式。 如果 Shift 键不适合您,您可能需要通过执行快速谷歌搜索来找到您的 PC/笔记本电脑型号的恢复按钮组合。

重新启动 PC 后,从启动菜单中选择 Ubuntu 的高级选项,然后在恢复模式打开时,从下拉列表中选择“修复损坏的包”菜单。

在 ubuntu 上从恢复模式修复 brpken 包

现在,您需要按 Yes 按钮将系统挂载到文件系统中。 这将以读/写模式重新挂载文件系统,其他文件系统将被挂载到 /etc/fstab 目录。

构建缓存和加载文件

6.修复损坏的系统 包裹

通常,在 Ubuntu 机器中,我们使用 软件更新程序 应用程序来更新存储库、缓存文件和其他包数据。 但有时,由于某些依赖错误或系统错误,您可能无法执行软件更新程序应用程序。

要解决这个问题,您可以清除系统缓存并清除一些损坏的文件系统。 在终端 shell 上以 root 访问权限运行以下命令以清理缓存文件并安装缺少的依赖项。

clean cache 
sudo apt-get clean
sudo apt-get install -f

软件更新程序包系统损坏

7. 获取 Synaptic 包管理器

Synaptic 包管理器是用于 Ubuntu 和其他 Debina 发行版的最常用的基于 GUI 的包管理器工具。 它具有安装、删除、更新和修复损坏包的功能。 如果您的机器上没有安装 Synaptic 工具,请以 root 权限在终端 shell 上运行以下命令来安装它。

sudo apt-get update
sudo apt-get install synaptic

在 ubuntu 上安装突触

当 Synaptic 包管理器安装完成后,打开它并单击顶部托盘中的“编辑”按钮。 现在,浏览“修复损坏的包”选项。 通常,通过 突触工具,您需要首先从“所有包”列表中标记该应用程序。

通过概要修复 ubuntu 上损坏的软件包

修复软件包后,您现在可以决定并选择上述任何方法从您的 Ubuntu 系统中删除该应用程序。

额外提示:删除损坏包的恢复模式

这是我现在在我的 Ubuntu 系统上遵循的额外建议,然后确保系统包不会损坏。 当您不再使用该软件时,您需要清理并删除存储库文件; 否则,每次更新存储库时都会看到错误。

要从您的 Ubuntu 机器中删除未使用的存储库,请打开“软件和更新‘ 工具并点击 ‘其他软件‘ 标签。 在“其他软件”选项卡中,您将看到当前安装在系统上的存储库列表。 要删除任何存储库,请选中存储库名称,最后单击底部托盘中的“删除”按钮。

其他软件仓库

删除任何存储库后,请运行快速 aptitude update 命令来更新系统。

如果您找不到特定包的任何存储库,您可以随时使用 whereis 命令以了解文件所在的位置。

命令在哪里

最后的话

所有上述方法对于那些在 Ubuntu 系统上同时遇到单个和多个损坏包问题的人都很有用。 有时,损坏的系统会导致需要修复而无需重新安装整个系统的错误。 在整篇文章中,我描述了几种在 Ubuntu 系统上删除损坏包的方法。

我希望这篇文章对您有所帮助; 请与您的朋友和 Linux 社区分享这篇文章。 你也可以在评论区写下你对这篇文章的看法。