
¿Cuál es el comando para enumerar qué rpms podrían proporcionar un archivo en particular: los rpm que proporcionan archivos ya instalados o los rpms que podrían proporcionar archivos que no están instalados?
Respuesta1
Para archivos/paquetes ya instalados:
[jb@smokey ~]$ rpm -qf /etc/sudoers sudo-1.6.9p13-8.fc9.x86_64
Para archivos y paquetes aún no instalados:
[jb@smokey ~]$ yum whatprovides "/etc/sudoers" sudo-1.6.9p13-8.fc9.x86_64: permite acceso root restringido para usuarios específicos Repositorio: actualizaciones-nueva clave Emparejado de: Nombre de archivo: /etc/sudoers sudo-1.6.9p13-4.fc9.x86_64: permite acceso root restringido para usuarios específicos Repositorio: fedora Emparejado de: Nombre de archivo: /etc/sudoers sudo-1.6.9p13-8.fc9.x86_64: permite acceso root restringido para usuarios específicos Repositorio: instalado Emparejado de: Otro: Proporciona coincidencia: /etc/sudoers
Tenga en cuenta que "yum whatprovides " es una coincidencia de patrón, por lo que si no está seguro de dónde residiría el archivo que está buscando en la estructura del directorio, simplemente rodéelo entre comillas y asteriscos:
mmm lo que proporciona "*foo*"
De manera similar, si estás seguro de que lo que estás buscando es un binario, puedes hacer:
mmm lo que proporciona "*bin/foo"
Respuesta2
No conozco archivos que aún no estén instalados, pero para un archivo que ya está instalado puedes usar rpm -qif:
rpm -qif /bin/ls Nombre: coreutils Reubicaciones: (no reubicable) Versión: 5.97 Proveedor: Red Hat, Inc. Lanzamiento: 23.el5 Fecha de compilación: lunes 13 de julio de 2009 04:21:27 a.m. MDT Fecha de instalación: viernes 11 de septiembre de 2009, 04:46:01 a. m. MDT Host de compilación: hs20-bc1-7.build.redhat.com Grupo: Entorno del sistema/RPM de origen base: coreutils-5.97-23.el5.src.rpm Tamaño: 9053874 Licencia: GPLv2+ Firma: DSA/SHA1, martes 28 de julio de 2009, 03:42:40 a.m. MDT, ID de clave 5326810137017186 Empaquetador: Red Hat, Inc. URL: Resumen: Las utilidades principales de GNU: un conjunto de herramientas comúnmente utilizadas en scripts de shell Descripción : Estas son las utilidades principales de GNU. Este paquete es la combinación de los antiguos paquetes GNU fileutils, sh-utils y textutils.Si tienes el RPM descargado puedes consultar para ver qué se va a instalar:
rpm -qilp ./Server/jzlib-1.0.7-4jpp.1.i386.rpm advertencia: ./Server/jzlib-1.0.7-4jpp.1.i386.rpm: Firma DSA del encabezado V3: NOKEY, ID de clave 37017186 Nombre: jzlib Reubicaciones: (no reubicable) Versión: 1.0.7 Proveedor: Red Hat, Inc. Lanzamiento: 4jpp.1 Fecha de compilación: martes 8 de agosto de 2006 12:10:03 p.m. MDT Fecha de instalación: (no instalado) Host de compilación: hs20-bc1-6.build.redhat.com Grupo: Desarrollo/Bibliotecas/Java Fuente RPM: jzlib-1.0.7-4jpp.1.src.rpm Tamaño: 280436 Licencia: estilo BSD Firma: DSA/SHA1, jueves 18 de enero de 2007, 08:49:50 a.m. MST, ID de clave 5326810137017186 Empaquetador: Red Hat, Inc. URL: Resumen: Reimplementación JZlib de zlib en Java puro Descripción : El zlib está diseñado para ser un software gratuito, de uso general y sin cargas legales. -- es decir, no cubierto por ninguna patente -- compresión de datos sin pérdidas biblioteca para su uso en prácticamente cualquier hardware y sistema operativo. El zlib fue escrito por Jean-loup Gailly (compresión) y Mark Adler. (descompresión). /usr/lib/gcj/jzlib/jzlib-1.0.7.jar.db /usr/lib/gcj/jzlib/jzlib-1.0.7.jar.so /usr/share/doc/jzlib-1.0.7 /usr/share/doc/jzlib-1.0.7/LICENCIA.txt /usr/share/java/jzlib-1.0.7.jar /usr/share/java/jzlib.jarpuede omitir "-i" de las opciones si no le interesa ver toda la información sobre las RPM.
Respuesta3
En repositorios basados en yum, puedes probar algo como yum provides */filename
Respuesta4
Si no desea (o no puede) usar yum (por ejemplo, en una máquina fuera de línea), puede buscar dentro de RPM no instalados haciendo
# rpm -qp --filesbypkg *rpms-to-search-in* | grep *file-to-search-for*
Esto puede llevar algún tiempo, así que tenga paciencia al buscar entre *.rpm en un repositorio grande, como un DVD de instalación, por ejemplo. Pero, a diferencia de "-qpl", "-qp --filesbypkg" listará tanto el archivo como el RPM al que pertenece, por ejemplo:
# rpm -qpl p*.rpm|grep libpq.so.4
/usr/lib/libpq.so.4
/usr/lib64/libpq.so.4
# rpm -qp --filesbypkg p*.rpm|grep libpq.so.4
postgresql-libs /usr/lib/libpq.so.4
postgresql-libs /usr/lib64/libpq.so.4
en cuyo caso el aparente duplicado se debe a la presencia de paquetes i386 y x86_64 (que se hace evidente a partir de la cadena "lib64").