我如何找到并删除已安装的损坏软件包?

我如何找到并删除已安装的损坏软件包?

我浏览了这里的一些问题,以找到查找和删除损坏软件包的解决方案。作为一个相对新手,我在 12.04 LTS 机器上安装了一些为 11.10 设计的 PPA。在终端中,它建议我尝试 apt-get -f install,这让我想到了这个问题:

如果有人能帮助我,这对我来说是一个很大的教训

答案1

  • 通过软件中心或在终端中运行此命令来安装 Synaptic 包管理器:

     sudo apt-get install synaptic 
    
  • synaptic通过输入 Unity dash 然后点击 来打开它Enter

  • 然后按照以下步骤操作:

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

    屏幕截图显示依赖关系损坏的软件包上“标记为完全删除”

就这样了。破损的包裹已经不见了。

答案2

Synaptic 软件包管理器(可在软件中心获得)是图形管理软件包的工具,除其他功能外,它还允许您按状态过滤软件包。只需单击几下,在左侧面板上选择所需的类别,即可看到需要修复的软件包列表。

答案3

无需下载,无需 GUI:

您可以列出损坏的包裹:

dpkg -l | grep ^..r 

rstate(第三个字段)表示:reinst-required(包损坏,需要重新安装)

dpkg 字段说明

列表并删除这些包:

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

(答案复制自此主题

答案4

我编写了一个修复损坏软件包的脚本。该脚本会在 /var/log/dist-upgrade/apt.log 中搜索损坏的软件包,然后找到软件包名称,然后对其应用指定的命令。

小心使用此脚本,因为有时一些损坏的包与系统有关,可能会产生新的问题。因此使用安装或者升级命令而不是消除命令。

从这里获取

使用以下命令下载脚本:

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

然后运行它:

./fix-broken.sh

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

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

默认操作是消除

相关内容