¿Cómo encontrar a qué paquete pertenece cierto comando en CentOS?

19

Por ejemplo, puedo encontrar fácilmente que el comando de localización pertenece al paquete mlocate.i386.

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

Pero no es tan fácil encontrar a qué paquete pertenece el comando gratuito:

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

Entonces, ¿hay alguna forma conveniente de saber a qué paquete pertenece un comando específico en Linux? Por ejemplo, CentOS u otras distribuciones

enormemeow
fuente

Respuestas:

17

Consulta el rpmdb.

rpm -qf $(which free)
Ignacio Vazquez-Abrams
fuente
¿Por qué no usar rpm -qf which free?
hugemeow
Cualquiera esta bien. $(...)Es un hábito para mí.
Ignacio Vazquez-Abrams
The pipe waywhich free | xargs rpm -qf
Eido95
24

Ejemplo de Ubuntu / Debian para verificar el paquete del freecomando:

dpkg -S $(which free)
Jeroen Vermeulen - MageHost
fuente
esto funciona solo para paquetes instalados. He encontrado aquí algo que funcione para paquetes no instalados$ dpkg -S */free$*
bobrobbob
@bobrobbob Me temo que eso no es correcto. Probé con lo dpkg -S */firefox$*que da múltiples resultados en un servidor que tiene instalado Firefox, ninguno en un servidor sin Firefox. Creo que no puede funcionar porque dpkges un comando que opera en los paquetes instalados localmente. Para encontrar paquetes no instalados, puede ir a packages.ubuntu.com/…
Jeroen Vermeulen - MageHost
Oh mi. tienes razón, perdón por eso
bobrobbob 03 de
1
Si obtiene dpkg-query: hay camino encontró el modelo a juego intente esto : dpkg -S "$(readlink -fn "$(which free)")".
Pablo A
7

Para CentOS, ¿qué tal yum proporciona?

Utilizar

which free 

para averiguar dónde está

Para mi es en

/ usr / bin / free

Entonces puedes correr

yum provides /usr/bin/free

y te dirá qué paquete lo tiene

marca
fuente
Si the commandno estaba instalado o no estaba disponible en sus centos, podría usarlo yum provides <command>, porque which <command>volveránot <command> in ...
Lane Ouyang
1

Para todas las distribuciones basadas en red-hat, puede usar la utilidad de administración de paquetes yum

yum provides `which free`

proporciona argumento especifica qué paquete proporciona cierta característica o archivo.

LoveWithMaths
fuente