Como ejemplo, estoy buscando un mod_files.sh
archivo que presumiblemente vendría con el php-devel
paquete. Supuse que eso yum
instalaría el mod_files.sh
archivo con el php-devel x86_64 5.1.6-23.2.el5_3
paquete, pero parece que el archivo no está instalado en mi sistema de archivos.
¿Cómo averiguo qué paquete instala un archivo específico? Estoy buscando donde no necesariamente he descargado localmente el paquete que puede incluir el archivo que estoy buscando.
Estoy usando CentOS 5.
rpm
, debe usarloyum
.Respuestas:
Esta es una vieja pregunta, pero las respuestas actuales son incorrectas :)
Use yum whatprovides , con la ruta absoluta al archivo que desea (que puede estar en comodín). Por ejemplo:
Devoluciones
Puede preferir la salida y la velocidad de la
repoquery
herramienta, disponible en elyum-utils
paquete.repoquery
puede hacer otras consultas, como enumerar el contenido del paquete, dependencias, dependencias inversas, etc.fuente
Para conocer el paquete que posee (o proporciona) un archivo ya instalado:
fuente
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 está en la memoria caché del repositorio yum actual), yyum whatprovides <filename>
es el más adecuado para determinar qué paquete proporciona una aplicación aún por instalar solicitud. Cada uno tiene su propio propósito.yum whatprovides ...
solo requiere root si la aplicación es un paquete raíz (es decir, reside en/sbin
). Sin embargo,rpm -qf ...
también requiere root para leer rpms/sbin
. Por lo tanto, propongo que los requisitos raíz sean funcionalmente equivalentes para ambos métodos.La respuesta más popular es incompleta:
Dado que esta búsqueda generalmente se realizará solo para archivos de paquetes instalados, yum whatprovides se hace increíblemente rápido al deshabilitar todos los repositorios externos (el repositorio implícito "instalado" no se puede deshabilitar).
fuente
--disablerepo=*
Usted va a http://www.rpmfind.net y busca el archivo.
Obtendrá resultados para muchas distribuciones y versiones diferentes, pero es muy probable que también aparezca Fedora y / o CentOS, y sabrá el nombre del paquete para instalar con yum
fuente
Bueno, encontrar el paquete cuando está conectado a Internet (repositorio) es fácil, sin embargo, cuando solo tiene acceso a paquetes RPM dentro de Redhat o Centos DVD (esto me sucede con frecuencia cuando tengo que recuperar un servidor y necesito una aplicación). Recomiendo utilizando los siguientes comandos, que es completamente independiente de internet y repositorios. (supuestamente tiene muchos paquetes desinstalados en un DVD). Supongamos que ha montado la carpeta Paquete en ~ / cent_os_dvd y está buscando un paquete que proporcione "semanage", entonces puede ejecutar:
fuente
Usando solo la utilidad rpm, esto debería funcionar en cualquier sistema operativo que tenga rpm:
Árbitro. https://www.thegeekdiary.com/how-to-find-which-rpm-package-provides-a-specific-file-or-library-in-rhel-centos/
fuente
Puedes hacer esto por igual aquí pero con tu paquete. En mi caso, fue
lsb_release
Correr:
yum whatprovides lsb_release
Respuesta:
Ejecutar para instalar:
yum install redhat-lsb-core
El nombre del paquete DEBE estar sin número y tipo de sistema para que yum packager pueda elegir qué es lo mejor para él.
fuente