210 votos

¿Cómo puedo encontrar el paquete rpm que suministra un archivo que estoy buscando?

Por ejemplo, estoy buscando un mod_files.sh que presumiblemente vendría con el php-devel paquete. Adiviné que yum instalaría el mod_files.sh con el archivo php-devel x86_64 5.1.6-23.2.el5_3 pero parece que el archivo no está instalado en mi sistema de archivos.

¿Cómo puedo saber qué paquete instala un archivo específico? Estoy buscando donde no necesariamente ya he descargado localmente el paquete que puede incluir el archivo que estoy buscando.

Estoy usando CentOS 5.

7 votos

¿superusuario.com___?

0 votos

@Grzegorz Buen punto, he puesto un voto para mover.

0 votos

Aquí hay una respuesta mejor: unix.stackexchange.com/a/4706/39281

269voto

rjh Puntos 17192

Esta es una pregunta antigua, pero las respuestas actuales son incorrectas :)

Utilice yum whatprovides con la ruta absoluta del archivo que desea (que puede ser comodín). Por ejemplo:

yum whatprovides '*bin/grep'

Devuelve

grep-2.5.1-55.el5.x86_64 : The GNU versions of grep pattern matching utilities.
Repo        : base
Matched from:
Filename    : /bin/grep

Es posible que prefiera la salida y la velocidad del repoquery disponible en el yum-utils paquete.

sudo yum install yum-utils
repoquery --whatprovides '*bin/grep'
grep-0:2.5.1-55.el5.x86_64
grep-0:2.5.1-55.el5.x86_64

repoquery puede hacer otras consultas como listar el contenido de los paquetes, las dependencias, las dependencias inversas, etc.

202voto

dj_segfault Puntos 6407

Para conocer el paquete que posee (o proporciona) un archivo ya instalado:

rpm -qf myfilename

4 votos

Este comando parece ser más eficiente que yum whatprovides--no es necesario obtener actualizaciones de repositorios posiblemente lentos.

1 votos

Esta versión también funciona en distro's no basadas en redhat que todavía utilizan rpm's como openSUSE

5 votos

Me parece que rpm -qf <filename> es el más adecuado para determinar qué paquete proporciona una aplicación instalada (ya que puede ser diferente de lo que hay en la caché del repositorio yum actual), y yum whatprovides <filename> es el más adecuado para determinar qué paquete proporciona una aplicación aún no instalada. Cada uno tiene su propio propósito.

4voto

Arash Puntos 23

Bueno encontrar el paquete cuando estas conectado a internet (repositorio) es fácil sin embargo cuando solo tienes acceso a los paquetes RPM dentro del DVD de Redhat o Centos (esto me pasa frecuentemente cuando tengo que recuperar un servidor y necesito una aplicación) recomiendo usar los comandos de abajo que es completamente independiente de internet y repositorios. (supuestamente tienes muchos paquetes desinstalados en un DVD). Digamos que has montado la carpeta Package en ~/cent_os_dvd y estás buscando un paquete que proporcione "semanage" entonces puedes ejecutar

for file in `find ~/cent_os_dvd/ -iname '*.rpm'`;  do rpm -qlp $file |grep '.*bin/semanage';  if [ $? -eq 0 ]; then echo "is in";echo $file  ; fi;  done

4voto

nos Puntos 102226

Usted va a http://www.rpmfind.net y buscar el archivo.

Obtendrá resultados para un montón de diferentes distros y versiones, pero muy probablemente Fedora y / o CentOS aparecerá también y usted sabrá el nombre del paquete para instalar con yum

0 votos

Este sitio web está fuera de línea.

1 votos

El sitio web no parece buscar archivos; sólo nombres de paquetes con el término de búsqueda.

1 votos

@jww La búsqueda de archivos funciona bien al menos para mí. Como dice la documentación, puedes buscar ejecutables por su nombre de ruta única o cualquier archivo con el nombre de ruta absoluta.

-1voto

Jess Puntos 8425

Si falta algo grande lo buscaré en Google para encontrar las rpm. Si no, para un Shell ShellscriptShell o algo similar, simplemente instalaré el archivo manualmente.

Iteramos.com

Iteramos es una comunidad de desarrolladores que busca expandir el conocimiento de la programación mas allá del inglés.
Tenemos una gran cantidad de contenido, y también puedes hacer tus propias preguntas o resolver las de los demás.

Powered by:

X