Wenn Sie dlocate
installiert haben, gibt es eine einfache Möglichkeit , alle Befehle in einem installierten Paket aufzulisten:
dlocate -lsbin PACKAGE-NAME
Nur mit dpkg
können Sie die Dateien in den Standard-PATH-Verzeichnissen auflisten (es sind fast alle ausführbaren Programme, mit sehr wenigen Ausnahmen):
dpkg -L PACKAGE-NAME… | sed -n 's!^\(/s\?bin\|/usr/s\?bin\|/usr/games\)/!!p' | sort -u
Die Ausnahmen sind ein paar Verzeichnisse - ab Debian Wheezy nur zwei: /usr/bin/mh
und /usr/bin/nu-mh
.
Wenn das Paket nicht installiert ist, ersetzen Sie es dpkg -L
durchapt-file -F list
:
apt-file -F list PACKAGE-NAME… | sed -n 's!^\(/s\?bin\|/usr/s\?bin\|/usr/games\)/!!p' | sort -u
Es gibt zwar ausführbare Dateien in anderen Verzeichnissen, diese sollen jedoch nicht direkt ausgeführt werden, weshalb sie hier irrelevant sind.
Diese Methoden vermissen alle eine Reihe von Programmen: diejenigen, die über den alternativen Mechanismus bereitgestellt werden . Zum Beispiel nur für das ftp
Paket netkit-ftp
und pftp
werden bereitgestellt, aber dieses Paket stellt tatsächlich den ftp
Befehl bereit , da /usr/bin/ftp
es sich um eine symbolische Verknüpfung handelt, zu /etc/alternatives/ftp
der ftp
möglicherweise eine symbolische Verknüpfung zu einer der Implementierungen auf dem System besteht /usr/bin/netkit-ftp
. Der folgende Befehl (der kein Beispiel für eine gute Programmierung ist, sondern nur ein großer Einzeiler) listet die Befehle auf, die von einem Paket über den derzeit konfigurierten Alternativmechanismus bereitgestellt werden.
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…
Wenn Sie die Befehle auflisten möchten, die über eine Alternative bereitgestellt werden könnten, die derzeit so konfiguriert ist, dass sie auf ein anderes Paket verweist, müssen Sie die Dateien analysieren /var/lib/dpkg/alternatives
.
Symbolische Links und Konfigurationsdateien, die die alternativen Mechanismen implementieren, werden nicht in Paketen registriert, sondern automatisch in Paketen registriert. Dies postinst
macht es schwierig (und technisch unmöglich, wenn das Installationsskript eines Pakets nicht den Konventionen entspricht), die von einem deinstallierten Paket bereitgestellten Alternativen abzufragen .