¿Cuál es el comando para enumerar qué rpms podría proporcionar un archivo en particular: las rpm que proporcionan archivos ya instalados o las rpms que podrían proporcionar archivos que no están instalados?
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 raíz restringido para usuarios específicos Repo: updates-newkey Emparejado de: Nombre de archivo: / etc / sudoers sudo-1.6.9p13-4.fc9.x86_64: permite acceso raíz restringido para usuarios específicos Repo: fedora Emparejado de: Nombre de archivo: / etc / sudoers sudo-1.6.9p13-8.fc9.x86_64: permite acceso raíz restringido para usuarios específicos Repo: 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 viviría el archivo que está buscando en la estructura del directorio, simplemente rodee con comillas y asteriscos:
mmm lo que proporciona "* foo *"
Del mismo modo, si está seguro de que lo que está buscando es un binario que puede hacer:
mmm lo que proporciona "* bin / foo"
No sé acerca de los archivos que ya no están instalados, pero para un archivo que ya está instalado puede usar rpm -qif:
rpm -qif / bin / ls Nombre: reubicaciones de coreutils: (no reubicable) Versión: 5.97 Vendedor: Red Hat, Inc. Lanzamiento: 23.el5 Fecha de compilación: Lun 13 Jul 2009 04:21:27 AM MDT Fecha de instalación: vie 11 sep 2009 04:46:01 AM MDT Build Host: 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 AM MDT, clave ID 5326810137017186 Empaquetador: Red Hat, Inc. URL: Resumen: las utilidades principales de GNU: un conjunto de herramientas comúnmente utilizadas en los scripts de shell Descripción: Estas son las utilidades principales de GNU. Este paquete es la combinación de los viejos paquetes GNU fileutils, sh-utils y textutils.Si tiene el RPM descargado, puede 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: encabezado V3 DSA firma: NOKEY, clave ID 37017186 Nombre: reubicaciones jzlib: (no reubicable) Versión: 1.0.7 Vendedor: Red Hat, Inc. Lanzamiento: 4jpp.1 Fecha de compilación: martes 08 agosto 2006 12:10:03 PM MDT Fecha de instalación: (no instalado) Build Host: hs20-bc1-6.build.redhat.com Grupo: Desarrollo / Bibliotecas / Java Source RPM: jzlib-1.0.7-4jpp.1.src.rpm Tamaño: 280436 Licencia: estilo BSD Firma: DSA / SHA1, jue 18 de enero de 2007 08:49:50 AM MST, clave ID 5326810137017186 Empaquetador: Red Hat, Inc. URL: Resumen: JZlib re-implementación de zlib en Java puro Descripción: El zlib está diseñado para ser gratuito, de uso general, sin gravámenes legales - es decir, no está cubierto por ninguna patente - compresión de datos sin pérdida biblioteca para usar 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/LICENSE.txt /usr/share/java/jzlib-1.0.7.jar /usr/share/java/jzlib.jarpuede omitir el "-i" de las opciones si no le interesa ver toda la información sobre el RPM.
En repositorios basados en yum, puedes probar algo como yum provides */filename
afaik, no es posible con rpm puras. rpm proporciona esto solo para paquetes instalados con opción --whatprovides
.
cuando pueda usar yum, intente yum provides <filename>
buscar en el repositorio.
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 cuando busque entre * .rpm en un repositorio grande, como un DVD de instalación, por ejemplo. Pero, a diferencia de "-qpl", "-qp --filesbypkg" enumerará 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").
Me temo que no estoy seguro de cómo hacerlo con RPMS, pero con Debian y Ubuntu puedes usar el programa apt-file