Wie finde ich heraus, zu welchem ​​Paket ein bestimmter Befehl unter CentOS gehört?


18

Zum Beispiel kann ich leicht feststellen, dass der Befehl locate zum Paket mlocate.i386 gehört.

yum search locate
mlocate.i386 : An utility for finding files by name
[mirror@home /]$ rpm -qa | grep locate
mlocate-0.15-1.el5.1

yum search updatedb
Loaded plugins: fastestmirror, protectbase
0 packages excluded due to repository protections
=========================================== Matched: updatedb ===========================================
mlocate.i386 : An utility for finding files by name

Es ist jedoch nicht so einfach zu ermitteln, zu welchem ​​paketfreien Befehl Folgendes gehört:

yum search free   // this command just returns too much informationy 
rpm -qa | grep free
freetype-2.2.1-31.el5_8.1   // obviously not the package by which free command is installed

Gibt es also eine sichere Methode, um herauszufinden, zu welchem ​​Paket ein bestimmter Befehl unter Linux gehört? Zum Beispiel CentOS oder andere Distributionen

Antworten:



24

Ubuntu / Debian- Beispiel, um das Paket des freeBefehls zu überprüfen :

dpkg -S $(which free)

Dies funktioniert nur für installierte Pakete. Ich habe hier etwas gefunden , das für nicht installierte Pakete $ dpkg -S */free$*
funktioniert

@bobrobbob Ich fürchte, das ist nicht richtig. Ich habe getestet, dpkg -S */firefox$*womit auf einem Server, auf dem Firefox installiert ist, mehrere Ergebnisse erzielt werden, auf einem Server ohne Firefox jedoch keine. Ich denke, es kann nicht funktionieren, weil dpkgein Befehl für die lokal installierten Pakete ausgeführt wird. Nicht installierte Pakete finden Sie unter packages.ubuntu.com/…
Jeroen Vermeulen - MageHost

Oh mein. du hast recht, sorry dafür
Bobrobbob

1
Wenn Sie erhalten dpkg-query: gefunden kein Pfad Pattern - Matching dies versuchen : dpkg -S "$(readlink -fn "$(which free)")".
Pablo A

6

Wie sieht es bei CentOS mit yum aus?

Verwenden

which free 

herauszufinden, wo es ist

Für mich ist es bei

/ usr / bin / free

Dann kannst du rennen

yum provides /usr/bin/free

und es wird Ihnen sagen, welches Paket es hat


1

Für alle Red Hat-basierten Distributionen können Sie das Dienstprogramm yum package management verwenden

yum provides `which free`

Das Argument offers gibt an, welches Paket bestimmte Funktionen oder Dateien bereitstellt.

Durch die Nutzung unserer Website bestätigen Sie, dass Sie unsere Cookie-Richtlinie und Datenschutzrichtlinie gelesen und verstanden haben.
Licensed under cc by-sa 3.0 with attribution required.