it-swarm.com.de

Herausfinden, aus welchem ​​Paket ein Befehl stammt

Gibt es eine verallgemeinerte Möglichkeit herauszufinden, welches Paket die Installation eines Befehls verursacht hat?

32
oadams

Öffnen Sie ein Terminal und versuchen Sie die folgenden Befehle:

dpkg -S 'command name'

zB: dpkg -S /bin/ls

Beispielausgabe:

coreutils: /bin/ls

Sie können auch detaillierte Statusinformationen zum Paket coreutils erhalten, indem Sie Folgendes eingeben:

 dpkg -s coreutils

Beispielausgabe:

Package: coreutils
Essential: yes
Status: install ok installed
Priority: required
Section: utils
Installed-Size: 9040
Maintainer: Ubuntu Core Developers 
Architecture: i386
Version: 5.97-5.3ubuntu3
Replaces: textutils, shellutils, fileutils, stat, debianutils (<= 2.3.1), dpkg (<< 1.13.2)
Provides: textutils, shellutils, fileutils
Pre-Depends: libacl1 (>= 2.2.11-1), libc6 (>= 2.6-1), libselinux1 (>= 2.0.15)
Conflicts: stat
Description: The GNU core utilities
 This package contains the essential basic system utilities.
 .
 Specifically, this package includes:
 basename cat chgrp chmod chown chroot cksum comm cp csplit cut date dd df dir
 dircolors dirname du echo env expand expr factor false fmt fold groups head
 hostid id install join link ln logname ls md5sum mkdir mkfifo mknod mv Nice nl
 Nohup od paste pathchk pinky pr printenv printf ptx pwd readlink rm rmdir
 sha1sum seq shred sleep sort split stat stty sum sync tac tail tee test touch
 tr true tsort tty uname unexpand uniq unlink users vdir wc who whoami yes
Original-Maintainer: Michael Stone 
41
aneeshep

es gibt eine andere Methode, vielleicht ein bisschen albern, aber schneller als die vorherigen :) Tippe einfach einen Befehl falsch ein und du erhältst den korrekten Befehlsnamen und das Paket, von dem er kam.

Beispielausgabe:

[email protected]:/var/www$ sfn
No command 'sfn' found, did you mean:
 Command 'sn' from package 'mono-devel' (main)
 Command 'sfc' from package 'syfi-bin' (universe)
 Command 'svn' from package 'Subversion' (main)
sfn: command not found
13
Pawełkowy

Aus dem Befehlsnamen können Sie mit den Befehlen 'type' und 'dpkg' das Paket ermitteln, das für die Installation verantwortlich ist. Um beispielsweise herauszufinden, welches Paket den Befehl 'who' installiert hat, können Sie die folgenden Befehle an einer Eingabeaufforderung ausführen:

$ type who
who is /usr/bin/who
$ dpkg -S /usr/bin/who
coreutils: /usr/bin/who
5
Andy

Du kannst es auch mit einer Zeile machen:

dpkg -S $(which command)

Zum Beispiel möchte ich wissen, welches Paket ls enthält:

dpkg -S $(which ls)

Und hier ist die Ausgabe:

coreutils: /bin/ls

Jetzt weiß ich, dass der Befehl/bin/ls aus dem Paket coreutils stammt.

4
Shnatsel

Nun zu einem ganz anderen Ansatz.

Gehen Sie zu packages.ubuntu.com und folgen Sie Ihrer Nase. Scrollen Sie insbesondere nach unten zu "Durchsuchen des Inhalts von Paketen" und geben Sie den Dateinamen oder den Systembefehl ein.

2
8128
  1. gehen Sie zu einer Eingabeaufforderung (Menü> Programme> Zubehör> Terminal)
  2. geben Sie dpkg-query --search 'command' ein, wobei 'command' der Befehl ist, dessen Besitzpaket Sie suchen.
0
finley