Apt/Aptitude:如何过滤无法安装的软件包?

Apt/Aptitude:如何过滤无法安装的软件包?

特别是在运行 Sid 时,随着依赖项更改 ABI 版本,或者依赖项本身可能已被删除,许多软件包变得不可安装。最好知道如何过滤这些包,以便潜在的维护人员可以检查存储库上有哪些有问题的包。

到目前为止我想出了:

#!/bin/sh
apt-cache pkgnames|xargs apt-get -s install\
|sed "/ : /h;/installable/{x;/ .* :/{s/ \(.*\) :.*/\1/;b}};d" | sort

它不会递归地标记依赖于“不会安装”包 X 的包,其中 X 是由于依赖项之一“不可安装”而被标记的包。例如在以下内容中:

foo : Depends on bar but not going to be installed
bar : Depends on baz but not installable

bar会被标记但foo不会。我不应该只标记所有带有“不会安装”行的包,因为它可能是一个存在的包,但破坏了另一个已安装的包。

答案1

假设您了解 Python,如果您不了解,那么今天是开始的好时机... apt python 绑定的文档有一个相关的有效示例,尽管它可能不是一个完整的解决方案。

apt-get install python-apt python-apt-doc

看看/usr/share/doc/python-apt-doc/examples/missing-deps.py。我正在使用 Debian 挤压。

我刚刚尝试过

python missing-deps.py

它确实产生了一小部分软件包。我对此脚本的理解是,它会生成当前可在 Debian main 上卸载的软件包列表。然而,我目前没有方便的 Debian 不稳定安装来测试它。

相关内容