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


11

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

Answers:


6

Synaptic软件包管理器(可从软件中心获得)是用于管理软件包的图形工具,在许多功能中,它允许您按软件包的状态过滤软件包。单击几下,通过在左侧面板上选择所需的类别,将显示需要修复的软件包列表。


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

     sudo apt-get install synaptic 
    
  • 通过键入synapticUnity破折号然后单击来打开它Enter

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

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

    屏幕快照显示依赖项损坏的软件包上的“标记为完全删除”

而已。破损的包裹不见了。


我没有Broken dependencies在我的状态页面。
马克·戴文

3

无需下载,无需GUI:

您可以列出损坏的包裹:

dpkg -l | grep ^..r 

r state(在第三个字段上)表示: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

(从此线程复制答案。)


1

要清理从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步之后您仍然有错误,请返回并更新您的问题。

祝好运。


E:无法找到ppa-purge软件包
stiv 2015年

我将第二.. ppa-purge不存在。
John Drefahl

0

我已经制作了一个脚本来修复损坏的程序包。这将在/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)

默认操作是remove

By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.