Linux-Paket ist ein komprimiertes Dateiarchiv, das alle Dateien enthält, die zu bestimmten Anwendungen gehören. In einigen Situationen müssen Sie möglicherweise den zu einer Datei gehörenden Paketnamen suchen.
In diesem Tutorial lernen wir, wie man Finden Sie heraus, zu welchem Paket eine Datei gehört oder besitzt im Linux-System.
Welches Paket stellt eine Datei auf dem Ubuntu/Debian-System bereit?
Um herauszufinden, welches Paket eine Datei auf dem Ubuntu/Debian-System bereitstellt, haben wir einige Methoden.
Verwenden von dpkg
Sie können die Befehle dpkg und dpkg-query verwenden, um ein Paket zu finden, das eine Datei bereitstellt. Dieser Befehl sucht nach einem Dateinamen aus den installierten Paketen.
Syntax:
dpkg -S filename
dpkg-query -S filename
Zum example, um herauszufinden, zu welchem Paket die Datei /bin/ls gehört, verwenden Sie den folgenden Befehl.
$ dpkg -S /bin/ls
dpkg-query verwenden
Sie können auch den Befehl dpkg-query verwenden, um den Paketnamen für die installierte Datei zu ermitteln.
$ dpkg-query -S /bin/ls
$ dpkg-query -S '/bin/ls'
$ dpkg-query -S 'passwd*'
Verwenden der apt-Datei
Sie können apt-file verwenden, um nach Dateien in DEB-Paketen auf Ihrem System zu suchen, sowie nach Paketen, die nicht auf Ihren Debian-Systemen installiert sind, aber über die Repositorys verfügbar sind.
Das Paket apt-file wird standardmäßig nicht installiert. Um die apt-Datei auf Ubuntu und anderen Debian-basierten Linux-Distributionen zu installieren, geben Sie Folgendes ein:
$ sudo apt install apt-file
Stellen Sie sicher, dass Sie den Datenbankcache aktualisieren, geben Sie Folgendes ein:
$ sudo apt-file update
Suchen wir nun das Paket, das den Befehl route bereitstellt, verwenden Sie den folgenden Befehl.
$ apt-file search 'bin/route'

Auf der linken Seite sehen Sie den zum route-Befehl gehörenden Paketnamen.
Welches Paket stellt eine Datei auf dem RHEL-basierten System bereit?
Dies wird von Linux-Distributionen wie Redhat, Fedora, AlmaLinux, Rocky Linux, CentOS Stream und Oracle Linux.
Verwenden des DNF-Befehls
Sie können verwenden provides
Option zusammen mit DNF, um das Paket einer Datei in einem RHEL-basierten System zu finden, wie z Fedora. Es stimmt mit allen Dateiangeboten jedes verfügbaren Pakets überein.
Syntax:
dnf provides filename
dnf provides *filename
dpkg-query --search '/path/to/file'
Zum example, wenn Sie das Paket einer Binärdatei finden möchten, verwenden Sie den folgenden Befehl.
$ dnf provides *bin/ls

Verwenden von RPM und Yum Command
Sie können den Befehl rpm verwenden, um das Paket zu finden, das eine bestimmte Datei bereitstellt.
Syntax:
rpm -rf filename
rpm -q --whatprovides filename
Dadurch wird der Paketname für die installierte Paketdatei gefunden
Zum example, verwenden Sie den folgenden Befehl, wenn Sie das rpm-Paket suchen möchten, das die Datei /bin/ls bereitstellt.
$ rpm -qf /bin/ls

Sie können auch den folgenden rpm-Befehl verwenden:
$ rpm -q --whatprovides /etc/nginx/nginx.conf

Mit dem Befehl yum können Sie dasselbe wie folgt tun:
$ yum whatprovides netstat
Sie können auch eine bestimmte Bibliotheksdatei verwenden, um nach dem Paket zu suchen, zu dem sie gehört
Nach Dateien suchen, die nicht auf Debian/Ubuntu installiert sind
Du kannst besuchen Debian-Pakete und Ubuntu-Paketsuche und suchen Sie nach der Datei. Das Ergebnis zeigt den Paketnamen an. Anschließend können Sie mit Ihrem apt-Befehl das entsprechende Paket installieren.

Abschluss
In diesem Tutorial haben wir gelernt, wie man unter Linux herausfindet, zu welchem Paket eine Datei gehört. Vielen Dank fürs Lesen, bitte geben Sie Ihr Feedback und Ihre Vorschläge ab.