如何从命令行确定包是否是元包?
如何从命令行确定包是否是元包,可能通过apt-get,aptitude或apt-cache?
我试过了:
apt-cache show texlive-full apt-cache showpkg texlive-full
但我能告诉这个包的唯一方法是通过阅读“en-description”字段。
是否有一种更自动的方式,这将给我一个是/否响应,或者至少有一个字段,如然后“en-description”专用于此?
元数据包没有正式的定义。 非正式定义是一个元数据包只是为了它的依赖项而安装的,并且不包含它自己的有用文件。
您可以将元数据包定义为不包含文件的包。 无法从包数据库中确定这一点。 您可以使用文件数据库并检查程序包是否只包含目录(许多此类程序包包含几个目录)。 实际上,大多数元数据包都包含/usr/share/doc/
的一些文件: copyright
文件,更改日志,有时还有一些。 这是一个近似,它将元数据包定义为仅包含/usr/share/doc/
(不在其子目录中)和前导目录中的文件:
if ! apt-file -F list $package | grep -qvE '^/(usr(/share(/doc(/[^/]*(/[^/]*)?)?)?)?)?$'; then echo "$package looks like a metapackage" fi
另一种方法是寻找带有debtags
的包标签 。 元数据包中常用了几个标记。
debtags tag ls $package | grep -x -e 'role::metapackage' -e 'role::dummy' -e 'special::meta'
另一种方法是寻找小尺寸的包装。 每个目录计为4 kB,因此在选择阈值时进行相应的计划(同样,这是一个近似值)。
aptitude -F '%I %p' search "~n^$package\$"
反思后,我想知道你的意思是虚拟包而不是元数据包。 虚拟包实际上不是包,而是在Provides:
字段中使用的包名称。 您可以使用aptitude search '~v'
列出它们。 在一个显示器上运行apt-cache show
“无法从包’zcav’中选择版本,因为它纯粹是虚拟的”。 运行aptitude show
列出提供它的包。 显示虚拟包的一种简便方法是使用apt-cache
:这会为非虚拟包打印一行,并且可能为虚拟包打印多行(每个提供者一行) – 即使存在,也可以判断包是否为虚拟单个提供者,因为提供者的名称不同。
apt-cache -n search "^$package\$"
你可以尝试输入
apt-cache search 'metapackage | meta-package'
这将给你一个很长的列表,然后使用grep
,说显示所有科学相关的元数据包
apt-cache search 'metapackage | meta-package' | grep -i science
这将返回一个长列表(我在这里缩短了)
science-astronomy - Debian Science Astronomy packages science-astronomy-dev - Debian Science Astronomy-dev packages science-biology - Debian Science Biology packages science-chemistry - Debian Science Chemistry packages science-dataacquisition - Debian Science data acquisition packages science-dataacquisition-dev - Debian Science data acquisition development packages science-distributedcomputing - Debian Science Distributed Computing packages science-electronics - Debian Science Electronics packages science-electrophysiology - Debian Science packages for Electrophysiology science-engineering - Debian Science Engineering packages science-engineering-dev - Debian Science Engineering-dev packages science-geography - Debian Science Geography packages science-highenergy-physics - Debian Science High Energy Physics packages
您可以使用任意数量的科学替代品,例如KDE
来查找所有KDE
元数据包。
这可能是你可以用apt-cache
做的最好的,但它应该快速找到你想要找到的大部分元数据包。 如果它找不到您正在寻找的所有内容,最简单的方法是查看Synaptic
中的metapackage部分。