GNU/Linux >> LINUX-Kenntnisse >  >> Linux

So finden Sie das Paket, das eine bestimmte Datei in Linux bereitstellt

Dieses kurze Tutorial erklärt einige verschiedene Möglichkeiten, das Paket zu finden, das eine bestimmte Datei in Linux bereitstellt. Dies kann nützlich sein, wenn Sie ein Paket manuell kompilieren und installieren. Wenn Sie ein Paket aus der Quelle kompilieren, besteht die Möglichkeit, dass Sie eine Fehlermeldung wie "No rule to make target '', needed by ''. Stop" erhalten. . Möglicherweise wissen Sie nicht genau, welches Paket die fehlende Datei bereitstellt. In solchen Fällen können Sie ganz einfach die Pakete finden, die diese fehlenden Dateien enthalten, und sie wie in dieser Anleitung beschrieben in Ihrer Linux-Box installieren.

Suchen Sie das Paket, das eine bestimmte Datei in Linux bereitstellt

Arch-Linux, Antergos, Manjaro-Linux:

Auf Arch-basiert gibt es ein kleines Befehlszeilentool namens pkgfile , das verwendet wird, um Dateien aus Paketen zu durchsuchen.

Pkgfile ist mit Arch Linux vorinstalliert. Wenn dies nicht der Fall ist, können Sie es mit dem folgenden Befehl installieren:

$ sudo pacman -S pkgfile

Führen Sie dann den folgenden Befehl aus, um mit der pkgfile-Datenbank zu synchronisieren:

$ sudo pkgfile -u

Jetzt können Sie das Paket finden, das eine bestimmte Datei bereitstellt, zum Beispiel alisp.h , mit dem Befehl:

$ pkgfile alisp.h
extra/alsa-lib

Wie Sie in der obigen Ausgabe sehen, ist alsa-lib Paket stellt alisp.h bereit Datei. Und das Paket ist extra erhältlich Repository. Sie können dieses Paket jetzt wie unten gezeigt installieren.

$ sudo pacman -S alsa-lib

Um alle vom Paket alsa-lib bereitgestellten Dateien aufzulisten, führen Sie Folgendes aus:

$ pkgfile -l alsa-lib

RHEL, CentOS, Fedora:

In YUM-basierten Systemen wie RHEL und seinen Klonen wie CentOS, Scientific Linux können Sie das Paket finden, das eine bestimmte Datei besitzt, indem Sie den folgenden Befehl verwenden:

$ yum whatprovides '*filename'

Verwenden Sie auf Fedora stattdessen den folgenden Befehl:

$ dnf provides '*filename'

Wenn die Datei bereits in Ihrem System vorhanden ist, sagen Sie zum Beispiel /bin/ls , können Sie dann das Paket finden, dem die Datei gehört, indem Sie den Befehl verwenden:

# rpm -qf /bin/ls
coreutils-8.22-18.el7.x86_64

Sie können auch die Repoquery verwenden Befehl wie folgt:

$ repoquery -f /bin/ls

Wenn der Repoquery-Befehl in Ihrem System nicht verfügbar ist, installieren Sie yum-utils Paket.

$ sudo yum install yum-utils

Oder,

$ sudo dnf install yum-utils

Debian, Ubuntu, LinuxMint:

In allen DEB-basierten Systemen können Sie das Paket finden, das eine bestimmte Datei bereitstellt, indem Sie apt-file verwenden Werkzeug.

Installieren Sie die apt-Datei wie unten gezeigt, falls sie noch nicht installiert ist:

$ sudo apt-get install apt-file

Wenn Sie gerade apt-file installiert haben, ist der systemweite Cache möglicherweise leer. Sie müssen 'apt-file update' als root ausführen, um den Cache zu aktualisieren. Sie können 'apt-file update' auch als normaler Benutzer ausführen, um einen Cache im Home-Verzeichnis des Benutzers zu verwenden.

Lassen Sie uns den Datenbank-Cache mit dem Befehl aktualisieren:

$ sudo apt-file update

Suchen Sie dann nach den Paketen, die eine bestimmte Datei enthalten, sagen Sie alisp.h , mit Befehl:

$ apt-file find alisp.h

Oder,

$ apt-file search alisp.h

Beispiel wäre:

libasound2-dev: /usr/include/alsa/alisp.h

Nun, libasound2-dev es ist! Sie können dieses Paket mit folgendem Befehl installieren:

$ sudo apt-get install libasound2-dev

Wenn Sie die Datei bereits haben und nur wissen möchten, zu welchem ​​Paket sie gehört, können Sie dpkg verwenden Befehl wie unten gezeigt.

$ dpkg -S $(which alisp.h)

Oder,

$ dpkg -S `which alisp.h`

Wenn Sie den vollständigen Pfad der Datei kennen, sagen Sie zum Beispiel /bin/ls ,  können Sie mit dem folgenden Befehl nach den Paketen suchen, zu denen es gehört:

$ dpkg -S /bin/ls
coreutils: /bin/ls

SUSE/openSUSE:

Führen Sie unter SUSE und openSUSE den folgenden Befehl aus, um herauszufinden, zu welchem ​​Paket eine bestimmte Datei gehört.

$ zypper wp alisp.h

Oder,

$ zypper se --provides --match-exact alisp.h

Empfohlene Lektüre:

  • Wie man installierte Pakete aus einem bestimmten Repository in Linux auflistet
  • So finden Sie Abhängigkeiten für ein bestimmtes Paket in CentOS

Und das ist alles. Hoffe das hilft. Wenn Sie andere Methoden kennen, um das Paket zu finden, das eine bestimmte Datei enthält, teilen Sie uns dies bitte im Kommentarbereich unten mit. Ich werde den Leitfaden entsprechend prüfen und aktualisieren.


Linux
  1. So verwenden Sie den Tar-Befehl unter Linux

  2. So finden Sie eine Datei in Linux

  3. So listen Sie die Abhängigkeiten eines Pakets in Linux auf

  4. So finden Sie die älteste Datei in einem Verzeichnisbaum in Linux

  5. Wie finde ich den Standard-Dateimanager?

So verwenden Sie den Linux-Kopfbefehl

So verwenden Sie den Linux-diff-Befehl

So finden Sie die installierte Version von Redhat Linux

So finden Sie eine Zeichenfolge in einer Datei unter Linux

Linux-Berechtigungen – So finden Sie Berechtigungen einer Datei

So finden Sie Dateien, die eine bestimmte Textzeichenfolge in Linux enthalten