So finden Sie unter Linux heraus, zu welchem ​​Paket eine Datei gehört

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'

apt-Datei-Suchbefehl

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

dnf bietet Befehl

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

rpm -qf Befehl

Sie können auch den folgenden rpm-Befehl verwenden:

$ rpm -q --whatprovides /etc/nginx/nginx.conf

rpm -q --whatprovide-Befehl

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.

Ubuntu-Paketsuche

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.