Befehle in Linux -Systemen werden normalerweise von Softwarepaketen bereitgestellt, die im Distributions -Repository installiert sind. Um festzustellen, welches Paket bestimmte Befehle bietet , können Sie ein Paket -Management -Tool verwenden, das für Linux -Verteilungen spezifisch ist. Dies ist nützlich, um fehlende Befehle zu installieren oder Paketabhängigkeiten zu beheben.
Inhaltsverzeichnis
Um herauszufinden, welches Paket ein Befehl für verschiedene Linux -Verteilungen bietet, verwenden Sie normalerweise ein Paketverwaltungssystem, das für Ihre Verteilung spezifisch ist (z. B. APK, APT, DNF, Pacman, Zypper usw.).
Hier erfahren Sie, wie Sie dies in einigen der häufigsten Linux -Verteilungen machen:
In Alpine Linux können Sie den APK -Paket -Manager verwenden, um herauszufinden, welches Paket einen bestimmten Befehl bietet.
<code># apk search -e pstree pstree-2.40-r1</code>
Dieser Befehl sucht nach Paketen, die sich auf den Befehl pstree im Alpine Linux -Paket -Repository beziehen.
Hier ist eine Aufschlüsselung der Befehle:
Durch das Ausführen von APK Search -e -Pstree sucht Alpine Linux sein Paketrepository nach einem Paket, das den Befehl pstree oder präzise "Pstree" bereitstellt.
Wenn das Pstree -Dienstprogramm nicht auf Ihrem Alpine Linux -System installiert ist, kann dies Ihnen helfen, das Paket zu finden und zu installieren, das das Pstree -Dienstprogramm enthält.
Unter Arch Linux und seinen Varianten wie Endeavouros und Manjaro Linux können Sie den Befehl pacman mit dem Flag -f- oder -qo -Flag verwenden, um nach Dateien (oder Befehlen) in einem Paket zu suchen.
Beispielsweise zeigt der folgende Befehl das Paket mit dem GREP -Befehl an:
<code>$ pacman -F grep</code>
Der Befehl Pacman -f Grep wird verwendet, um Pakete zu finden, die bestimmte Dateien oder Befehle bereitstellen.
Hier sind die Bedeutungen verschiedener Teile des Befehls:
Wenn Sie Pacman -f Grep ausführen, sucht der Paketmanager seine Paketdatenbank und listet alle installierten Pakete auf, die Dateien oder ausführbare Grep enthalten.
Die Ausgabe dieses Befehls zeigt normalerweise den Paketnamen und den vollständigen Pfad zum Datei an, der Grep entspricht. Zum Beispiel könnte die Ausgabe so aussehen:
<code>core/grep 3.11-1 usr/bin/grep [...]</code>
Dies zeigt an, dass der GREP -Befehl das GREP -Paket im Kernrepository bereitstellt und die ausführbare Datei in/usr/bin/grep befindet.
Wenn mehrere Pakete Dateien angeben, die GREP entsprechen, werden alle aufgeführt. Wenn kein Paket eine Datei namens Grep bereitstellt, gibt der Befehl keine Ausgabe zurück.
Sie können auch den Befehl pacman -qo verwenden, um zu finden, welches Paket eine bestimmte Datei oder einen bestimmten Befehl bietet.
<code>$ pacman -Qo grep</code>
Hier sind die Bedeutungen verschiedener Teile des Befehls:
Wenn Sie Pacman -Qo Grep ausführen, sucht Pacman nach allen installierten Paketen auf dem System und sucht Pakete, die Dateien oder ausführbare Grep enthalten oder bereitstellen.
Die Ausgabe dieses Befehls zeigt normalerweise den Paketnamen an, der eine Datei enthält, die Grep entspricht. Zum Beispiel könnte die Ausgabe so aussehen:
<code>/usr/bin/grep is owned by grep 3.11-1</code>
Dies zeigt an, dass der GREP -Befehl (in/usr/bin/grep) vom Grep -Paket bereitgestellt wird.
Wenn mehrere Pakete Dateien angeben, die GREP entsprechen, werden alle aufgeführt. Wenn kein Paket eine Datei namens Grep hat, gibt der Befehl keine Ausgabe zurück.
Dieser Befehl ist nützlich, wenn Sie herausfinden müssen, welches Paket eine bestimmte Datei oder einen bestimmten Befehl im Arch Linux -System gehört. Es kann Ihnen dabei helfen, fehlende Dateien oder Abhängigkeiten zu beheben oder pakete selektiv zu installieren, die bestimmte Komponenten bereitstellen.
Der Hauptunterschied zwischen Pacman -f Grep und Pacman -Qo Grep besteht darin, dass -F die Paketdatenbank durchsucht, um Pakete zu finden, die bestimmte Dateien enthalten, während -QO nach Dateien sucht, die auf dem System installiert sind und nach Paketen mit ihnen suchen.
Auf Debian -basierten Systemen wie Ubuntu können Sie den Befehl dpkg mit der Option -S verwenden, um nach Paketen zu suchen, die bestimmte Dateien installieren.
Wenn die Datei jedoch nicht installiert ist, müssen Sie den Befehl APT-Datei verwenden. Stellen Sie zunächst sicher, dass APT-Datei installiert ist und die Datenbank aktualisiert wird:
<code>$ sudo apt update $ sudo apt install apt-file $ sudo apt-file update</code>
Verwenden Sie dann den folgenden Befehl, um nach einem Paket zu suchen, das einen bestimmten Befehl bietet (z. B. den Befehl pstree):
<code>$ apt-file search pstree</code>
Beispielausgabe:
<code>criu: /usr/lib/python3/dist-packages/pycriu/images/pstree_pb2.py manpages-ja: /usr/share/man/ja/man1/pstree.1.gz<strong></strong></code><mark> psmisc:/usr/bin/pstree</mark> psmisc: /usr/bin/pstree.x11 psmisc: /usr/share/man/de/man1/pstree.1.gz psmisc: /usr/share/man/fr/man1/pstree.1.gz psmisc: /usr/share/man/man1/pstree.1.gz psmisc: /usr/share/man/man1/pstree.x11.1.gz psmisc: /usr/share/man/pt_br/man1/pstree.1.gz psmisc: /usr/share/man/ru/man1/pstree.1.gz psmisc: /usr/share/man/uk/man1/pstree.1.gz psmisc: /usr/share/pixmaps/pstree16.xpm psmisc: /usr/share/pixmaps/pstree32.xpm Python-psutil-doc: /usr/share/doc/python-psutil-doc/examples/pstree.py Recap:/usr/lib/recap/core/pstree SystemTap-doc: /usr/share/systemtap/examples/process/pstree.meta Systemtap-doc: /usr/share/systemtap/examples/process/pstree.stp Tomoyo-Tools:/usr/sbin/tomoyo-pstree Tomoyo-tools: /usr/share/man/man8/tomoyo-pstree.8.gz
Wie Sie in der obigen Ausgabe bemerkt haben, bietet das PSMISC -Paket den Befehl pstree. Mit diesem Ansatz können Sie die Pakete identifizieren, die Sie für die Installation benötigen, oder sicherstellen, dass Pstree auf Ihrem System verfügbar ist.
Oder wenn Sie bereits Pstree installiert haben und nur bestätigen möchten, dass Pstree von diesem Paket stammt, können Sie verwenden:
<code>$ dpkg -S pstree</code>
Auf Fedora und anderen RPM-basierten Systemen wie Almalinux, CentOS, Rhel und Rocky Linux können Sie den DNF-Befehl verwenden. Bei älteren Systemen müssen Sie möglicherweise yum verwenden.
Um beispielsweise nach einem Paket zu suchen, das Dateien bereitstellt, die Muster*/Pstree übereinstimmen, können Sie ausführen:
<code>$ dnf provides */pstree</code>
Das Folgende ist eine Aufschlüsselung der Funktionen des Befehls:
Wenn Sie diesen Befehl ausführen, sucht DNF seine Paketdatenbank und listet alle verfügbaren Pakete auf, die Dateien mit dem Namen Pstree enthalten. Diese Datei ist normalerweise eine ausführbare Datei für das Pstree -Dienstprogramm, in dem der Prozessbaum angezeigt wird.
In der Ausgabe dieses Befehls werden die Paketnamen und die Versionsnummer der Pstree -Datei angezeigt. Zum Beispiel könnte die Ausgabe so aussehen:
<code>psmisc-23.6-4.fc39.x86_64 : Utilities for managing processes on your system Repo : fedora Matched from: Provide : /usr/bin/pstree</code>
Dies zeigt an, dass die Pstree-Datei (in/usr/bin/pstree) hauptsächlich vom PSMISC-Paket (Version 23.6-4) aus dem Fedora-Repository bereitgestellt wird.
Durch die Verwendung des Befehls von DNF bietet Sie heraus, welche Pakete Sie installieren müssen, um bestimmte Dateien oder Dienstprogramme für Ihr System abzurufen.
Bei SUSE und OpenSuse können Sie den Befehl Zypper SE -vorstellen, um nach Paketen zu suchen, die eine angegebene Datei oder ausführbare Datei bereitstellen.
<code>$ zypper se --provides '/usr/bin/grep'</code>
Hier ist eine Aufschlüsselung der Befehle:
Wenn Sie diesen Befehl ausführen, sucht Zypper seine Paketdatenbank und listet alle verfügbaren Pakete auf, die die Datei/USR/bin/grep enthalten oder bereitstellen.
Die Ausgabe dieses Befehls zeigt die Namen, Versions- und Repository -Informationen des Pakets an, das die angegebene Datei bereitstellt. Zum Beispiel könnte die Ausgabe so aussehen:
<code>Loading repository data... Reading installed packages... S | Name | Summary | Type -- ------------------------- ------------------------------------------ ------- | grep-3.11-3 | Pattern matching utilities | package [...]</code>
Diese Ausgabe zeigt an, dass die Datei/usr/bin/grep hauptsächlich vom GREP-Paket (Version 3.11-3) bereitgestellt wird.
In Nixos Linux können Sie das NIX-ENV-Dienstprogramm verwenden, um herauszufinden, welches Paket einen bestimmten Befehl bietet.
Um beispielsweise herauszufinden, welches Paket den Befehl pstree bietet, können Sie ausführen:
<code>$ nix-env -qaP pstree</code>
Dadurch wird nach allen installierten Paketen gesucht und den Paketnamen und Pfad ausdrucken, wenn eine Übereinstimmung gefunden wird.
Beispielausgabe:
<code>nixpkgs.pstree pstree-2.39</code>
Zeigt an, dass der Befehl pstree vom pstree-2.39-Paket bereitgestellt wird.
Sie können auch den Nix -Suchbefehl verwenden, um den Namen des Pakets zu finden, der einen bestimmten Befehl bietet. Obwohl sich dieser Befehl noch in der experimentellen Phase befindet, können Sie ihn verwenden, um nach Paketen zu suchen.
Der erste Lauf kann langsam sein, aber nachfolgende Läufe werden zwischengespeicherte Ergebnisse verwendet.
Um beispielsweise ein Paket zu finden, das den Befehl pstree enthält, rennen Sie:
<code>$ nix --extra-experimental-features "nix-command flakes" search nixpkgs pstree</code>
Beispielausgabe:
<code>* legacyPackages.x86_64-linux.psmisc (23.6) A set of small useful utilities that use the proc filesystem (such as fuser, killall and pstree) * legacyPackages.x86_64-linux.pstree (2.39) Show the set of running processes as a tree</code>
Wir können das Equery-Tool im App-Portage/Gentoolkit-Paket in Gentoo Linux verwenden, um herauszufinden, welches Paket bestimmte Befehle bietet.
Stellen Sie sicher, dass Sie App-Portage/Gentoolkit installiert haben:
<code># emerge --ask app-portage/gentoolkit</code>
Um nach Paketen zu suchen, die bestimmte Befehle liefern, verwenden Sie die Gleichung mit der Option von Hingehörnern:
<code>equery belongs /path/to/command</code>
Ersetzen Sie/Pfad/an/Befehl mit dem vollständigen Pfad zum Befehl, nach dem Sie suchen.
Wenn Sie den Pfad zum Befehl nicht kennen, können Sie den Befehl "WO ID" verwenden, um ihn zu finden.
<code># whereis pstree</code>
Beispielausgabe:
<code># whereis pstree pstree:<strong></strong></code><mark> /usr/bin/pstree</mark> /usr/share/man/man1/pstree.1.bz2
Verwenden wir nun den Befehl, um herauszufinden, welches Paket den Befehl pstree bietet:
<code># equery belongs /usr/bin/pstree</code>
Dies gibt den Paketnamen und die Kategorie aus, die den Befehl Grep liefert, zum Beispiel:
<code> * Searching for /usr/bin/pstree ... sys-process/psmisc-23.6 (/usr/bin/pstree)</code>
Gibt an, dass der Befehl pstree vom sys-apps/psmisc-Paket bereitgestellt wird.
Wenn Sie nur nach dem Befehlsnamen suchen möchten, ohne den vollständigen Pfad anzugeben, können Sie die Option von HASUS verwenden:
<code># equery hasuse search-term</code>
Dadurch wird nach Paketen mit einem bestimmten Gebrauchs -Flag gesucht oder eine bestimmte ausführbare Datei bereitgestellt.
Paketmanager für die meisten wichtigen Linux-Verteilungen bieten integrierte Optionen, um Pakete zu identifizieren, die bestimmte Befehle oder Dateien bereitstellen. Sie ermöglichen es Ihnen, nach der Paketdatenbank zu suchen und das Quellpaket für einen bestimmten Befehl oder eine bestimmte Datei zu finden.
Diese Funktion hilft häufig dabei, fehlende Abhängigkeiten zu beheben, Pakete selektiv neu zu installieren und sicherzustellen, dass über die erforderlichen Komponenten installiert ist.
Verwandte Artikel: So finden Sie Pakete, die bestimmte Dateien unter Linux bereitstellen
Das obige ist der detaillierte Inhalt vonSo finden Sie, welches Paket einen Befehl unter Linux bietet. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!