我必须使用一些 kali 软件包,因此我将最后一个 kali 存储库添加到我的文件 /etc/apt/sources.list 中。一切顺利,我安装了一些软件包并使用了一些软件包。
但在安装某些软件包时,我注意到我的 Ubuntu 中一些已安装的软件包已更新为 kali 存储库中的软件包。目前这没什么问题,但现在当我尝试为 Ubuntu 安装一些软件包时,我收到错误Unable to correct problems , defective packets are in mode " keep state "
。
我猜测问题出在有些 Ubuntu 软件包更新了 kali 存储库中的版本。
那么,我怎样才能将所有已安装的数据包取消升级到 Ubuntu 存储库中的版本呢?
PS:我已经删除了 kali 存储库。我正在使用 Linux 版本 > 4 的 Ubuntu 15.10。
答案1
确定首次添加 Kali 存储库的日期,并检查/var/log/apt/history.log
在该日期及之后安装的软件包。这些软件包可能来自 Kali 存储库,您应该重新安装。
编辑一下这个软件包列表(删除版本信息、每行一个条目等)应该很简单,然后将这个清理过的软件包列表提供给。如果软件包列表太多,sudo apt-get install --reinstall
您可能需要将其提供给|xargs sudo apt-get install --reinstall
(参见)。man xargs
答案2
我找到了将软件包降级到官方 Ubuntu 存储库的解决方案:
我们必须使用 安装 ppa-purge 软件包sudo apt-get install ppa-purge
,它将删除外部存储库,并将所有软件包降级为官方存储库中可用的版本。
因此sudo ppa-purge ppa:user/ppa-name
将删除存储库并自动降级软件包。