Si tu as dlocate installé, il existe un moyen simple de répertorier toutes les commandes d'un package installé:
dlocate -lsbin PACKAGE-NAME
Avec juste dpkg, vous pouvez lister les fichiers dans les répertoires PATH standard (ce sont presque tous des programmes exécutables, à quelques exceptions près):
dpkg -L PACKAGE-NAME… | sed -n 's!^\(/s\?bin\|/usr/s\?bin\|/usr/games\)/!!p' | sort -u
Les exceptions sont quelques répertoires - à partir de Debian Wheezy, seulement deux: /usr/bin/mhet /usr/bin/nu-mh.
Si le package n'est pas installé, remplacez dpkg -L par apt-file -F list:
apt-file -F list PACKAGE-NAME… | sed -n 's!^\(/s\?bin\|/usr/s\?bin\|/usr/games\)/!!p' | sort -u
Bien qu'il existe des fichiers exécutables dans d'autres répertoires, ils ne sont pas destinés à être exécutés directement, ce qui les rend non pertinents ici.
Ces méthodes manquent toutes un ensemble de programmes: ceux qui sont fournis via le mécanisme alternatif . Par exemple, pour le ftppackage, seuls netkit-ftpet pftpsont fournis, mais ce package fournit en fait la ftpcommande, car il /usr/bin/ftps'agit d'un lien symbolique vers /etc/alternatives/ftplequel est ftppotentiellement un lien symbolique vers l'une des implémentations du système /usr/bin/netkit-ftp. La commande suivante (qui n'est pas un exemple de bonne programmation, juste un gros one-liner) répertorie les commandes fournies par un package via le mécanisme alternatif, tel qu'il est actuellement configuré.
perl -lwe 'foreach (`dpkg -L @ARGV`) {chomp; ++$p{$_}} foreach (</bin/* /sbin/* /usr/bin/* /usr/sbin/*>) {$e = readlink; next unless defined $e and $e =~ m!^/etc/alternatives/!; $t = readlink $e; print if $p{$t}}' PACKAGE_NAME…
Si vous souhaitez répertorier les commandes qui pourraient être fournies via une alternative actuellement configurée pour pointer vers un autre package, vous devez analyser les fichiers dans /var/lib/dpkg/alternatives .
Les liens symboliques et les fichiers de configuration qui implémentent les mécanismes alternatifs ne sont pas enregistrés dans les packages mais enregistrés automatiquement dans postinst, ce qui rend difficile (et en fait techniquement impossible si le script d'installation d'un package ne respecte pas les conventions) d'interroger les alternatives fournies par un package désinstallé .