如何找到并删除已安装的Broken Packages?

我在这里浏览了一些问题,以找到解决方案来定位和删除损坏的包。 作为一名相对新手,我在12.04 LTS机器上安装了一些专为11.10设计的PPA。 在终端,它建议我尝试apt-get -f install,这让我想到了这个问题 。如果有人能提供帮助的话,我会学到很多教训

Synaptic Package Manager (可在软件中心获得)是一个用于管理包的图形工具,在许多function中,它允许您按状态过滤包。 只需点击几下,通过在左侧面板上选择所需的类别,您将看到需要修复的软件包列表。

  • 通过软件中心或在终端中运行此命令来安装Synaptic Package Manager:

    sudo apt-get install synaptic 
  • 通过在Unity破折号中键入synaptic打开它,然后按Enter键

  • 然后按照以下步骤操作

    1. 选择“状态”类别。 这显示按状态组织的包。
    2. 从左上窗格中选择“Broken dependencies”类别。
    3. 选择损坏的包裹。 如果包不止一个,请按Ctrl + A选择所有包。
    4. 然后右键单击选定的包,并在菜单中选择“标记为完全删除”选项。

    屏幕截图显示了依赖于破坏的软件包上的“标记为完全删除”

而已。 破碎的包裹消失了。

无需下载,无需GUI:

您可以列出损坏的包:

 dpkg -l | grep ^..r 

r state(在第三个字段上)表示:需要重新安装(包破坏,需要重新安装)

dpkg字段说明

列出并删除这些包:

 dpkg -l | grep ^..r | while read -r | tr -s ' ' | cut -d' ' -f2 | while read -r name; do sudo apt-get remove "$name"; done 

(从这个post复制的答案。)

要清理你从ppa安装的软件包,你应该使用ppa-purge ,假设ppa是ppa:xorg-edger / ppa

  1. sudo apt-get install ppa-purge
  2. sudo apt-get update
  3. sudo ppa-purge ppa:xorg-edger/ppa
  4. 它会提示你一个要删除和/或降级的软件包列表,如果没有什么可疑,请回答Y并等待
  5. 如果你很幸运,它应该完成没有错误,否则你需要做一个sudo apt-get install -f

如果在步骤5之后仍然有错误,请返回并更新您的问题。

祝好运。

我已经制作了一个修复破损包的脚本。 这将在/var/log/dist-upgrade/apt.log中搜索损坏的包,然后查找包名称,然后对它们应用指定的命令。

请注意使用此脚本,因为有时一些损坏的软件包与系统有关,可能会出现新问题。 所以使用installupgrade命令而不是remove命令。

从这里获取它

使用以下命令下载脚本:

 wget https://gist.githubusercontent.com/EmpireWorld/8eb920165777399cfd684d8d4227a6e2/raw/17e6d4a151a6163aa45dd8302b965ed433b27741/fix-broken.sh 

然后运行它:

 ./fix-broken.sh 

您还可以设置要应用于损坏包的操作,如下所示:

 ./fix-broken (install|upgrade|remove) 

默认操作是删除