我需要获取 Debian 上没有二进制包的源包列表。
列出所有源包可能是一个答案,因此我们可以获取diff
可用二进制文件和可用源包之间的信息。
答案1
据我所知,Debian 中的所有源代码包都必须在至少一种架构上生成至少一个二进制包。
要计算系统配置的源存储库(deb-src
行)中可用源包生成的二进制包的数量,请运行
awk '/Package:/{p=$2;b=0} /Binary:/{b=NF - 1} /^$/{printf "%s: %d\n", p, b} END{printf "%s: %d\n", p, b}' /var/lib/apt/lists/*Sources
这无法在当前稳定、测试、不稳定和实验存储库中找到任何没有二进制包的源包。
如果您想确定哪些源包在给定体系结构上不生成任何二进制文件,可以按以下步骤操作:
列出全局唯一的源码包名称:
awk '/Package:/{print $2}' /var/lib/apt/lists/*_Sources | sort -u > source-packages
列出用于生成给定架构的二进制文件的源包(不包括
all
,它包含在特定于架构的索引中):awk '/(Package|Source):/{source=$2}/Version:/{print source}' /var/lib/apt/lists/*-amd64_Packages | sort -u > amd64-packages
列出全局源包列表中存在的条目,但不包含在用于以下用途的条目中
amd64
:comm -23 source-packages amd64-packages