我所说的“替代品”是指(在大多数情况下;参见下面的例外)与/var/lib/dpkg/alternatives
.
这些角色包括
awk
desktop-background
editor
global-assembly-cache-tool
haskell-compiler
infobrowser
java
w
www-browser
x-window-manager
zsh
等等。
我想到的一个例外是角色display-manager
(又名login-manager
),AFAICT 中没有表示该角色/var/lib/dpkg/alternatives
,但我对此非常感兴趣。
给定这些角色之一,让我们称之为foo
,我想知道可以扮演的所有可用的1foo
软件包,或者更准确地说,提供可执行文件那个可以玩foo
。
当然,我想知道这两个包和相关可执行文件的路径,因为后者并不总是从前者中显而易见;例如,对于角色x-window-manager
,这样的一个包是fluxbox
,而“相关可执行文件”是/usr/bin/startfluxbox
,而不是/usr/bin/fluxbox
。
(至少对于 下的角色/var/lib/dpkg/alternatives
,提供此类角色的包必须以替代管理器可以正确识别它们的方式打包;无论如何,这是我的理解。如果是这样,我希望有某种自动方法来识别所有提供特定角色的软件包。)
1可用,即通过我的/etc/apt/sources*
配置中指定的源。
答案1
虚拟包和Debian 替代系统(这是二进制文件发挥作用的地方)相关但不相同。对于软件包,您可以使用apt-cache
查找哪些(真正的)软件包“提供”它:
$ apt-cache showpkg awk
Package: awk
Versions:
Reverse Depends:
base-files,awk
base-files,awk
Dependencies:
Provides:
Reverse Provides:
mawk:i386 1.3.3-17ubuntu2
gawk:i386 1:4.0.1+dfsg-2.1ubuntu2
original-awk 2012-12-20-1
mawk 1.3.3-17ubuntu2
gawk 1:4.0.1+dfsg-2.1ubuntu2
对于显示管理器,虚拟包是x-display-manager
:
$ apt-cache showpkg x-display-manager
Package: x-display-manager
Versions:
Reverse Depends:
utf8-migration-tool,x-display-manager
razorqt,x-display-manager
lxde,x-display-manager
numlockx,x-display-manager
ltsp-client-core,x-display-manager
Dependencies:
Provides:
Reverse Provides:
gdm 3.10.0.1-0ubuntu3.1
lightdm 1.10.6-0ubuntu1
kdm 4:4.11.11-0ubuntu0.2
xdm 1:1.1.11-1ubuntu1
wdm 1.28-16
slim 1.3.4-2.1
lxdm 0.4.1-0ubuntu6
kdm 4:4.11.8-0ubuntu6
gdm 3.10.0.1-0ubuntu3
lightdm 1.10.0-0ubuntu3