特别是在运行 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 不稳定安装来测试它。