Red Hat Linux 5.0 - Usando RPM
Tutorial creado por Red Hat Software, Inc.. Extraido de: http://es.tldp.org/Manuales-LuCAS/GURH/GURH/
17 de Febrero de 2006
Linux, RedHat
37 - Usando RPM
RPM tiene cinco modos básicos de operación (sin contar la construcción del paquete): instalación, desinstalación, actualización, consulta y verificación. Esta sección contiene un vistazo de cada modo. Para opciones y detalles completos pruebe rpm --help, vea la página ``man de rpm asi como el (anteriormente mencionado) libro de RPM.
Los paquetes RPM tienen típicamente nombres de archivo como foo-1.0-1.i386.rpm, que incluye el nombre del paquete (foo), versión (1.0), desarrollo (1), y arquitectura (i386). Instalar un paquete es tan sencillo como:
$ rpm -ivh foo-1.0-1.i386.rpm foo
Como puede ver, RPM imprime en pantalla el nombre del paquete (el cual no es necesariamente el mismo que el archivo, el cual puede ser 1.rpm), e imprime una sucesión de símbolos de rejilla a medida que el paquete es instalado, como un medidor del progreso de la instalación.
La instalación de paquetes está diseñada para ser sencilla, pero puede obtener algunos errores:
Si el paquete está ya instalado, usted verá:
$ rpm -ivh foo-1.0-1.i386.rpm foo package foo-1.0-1 is already installed error: foo-1.0-1.i386.rpm cannot be installed
Si usted quiere instalar el paquete de todas maneras, usted puede usar --replacepkgs en la línea de comandos, lo que le dice a RPM que ignore el error.
Si intenta instalar un paquete que contiene un archivo que ha sido ya instalado por algún otro paquete, usted verá:
# rpm -ivh foo-1.0-1.i386.rpm foo /usr/bin/foo conflicts with file from bar-1.0-1 error: foo-1.0-1.i386.rpm cannot be installed
Para hacer que RPM ignore el error, use --replacefiles en la línea de comandos.
Los paquetes RPM pueden ``depender de otros paquetes, lo cual significa que requieren que otros paquetes sean instalados para funcionar correctamente. Si intenta instalar un paquete para el cual existe una dependencia no satisfecha, usted verá:
$ rpm -ivh bar-1.0-1.i386.rpm failed dependencies: foo is needed by bar-1.0-1
Para arreglar este error usted deberá instalar los paquetes requeridos. Si usted desea forzar la instalación de todas maneras (una mala idea ya que el paquete probablemente no funcionará correctamente), use --nodeps en la línea de comandos.
Desinstalar un paquete es tan sencillo como instalarlo:
$ rpm -e foo
Note que hemos usado el nombre ``foo para el paquete, no el nombre del paquete original ``foo-1.0-1.i386.rpm.
Usted puede encontrar un error de dependencias cuando intente desinstalar el paquete si algún otro paquete instalado depende del que está intentando borrar. Por ejemplo:
$ rpm -e foo removing these packages would break dependencies: foo is needed by bar-1.0-1
Para hacer que RPM ignore el error y desinstale el paquete de todas maneras (lo cual es una mala idea porque el paquete que depende de éste probablemente falle y no funcione correctamente), use --nodeps en la línea de comandos.
Actualizar un paquete es casi como instalar un paquete.
$ rpm -Uvh foo-2.0-1.i386.rpm foo
Lo que usted no ve arriba es el hecho de que RPM desinstala automáticamente cualquier versión antigua del paquete foo. De hecho usted quizá quiera siempre usar -U para instalar paquetes, ya que funciona bien incluso cuando no hay ninguna versión anterior del paquete instalada.
Dado que RPM realiza actualizaciones inteligentes de los paquetes con archivos de configuración, quizás vea un mensaje como:
saving /etc/foo.conf as /etc/foo.conf.rpmsave
Esto significa que sus cambios al archivo de configuracion puedan no ser ``reversiblemente compatibles con el nuevo archivo de configuración en el paquete, por lo que RPM salva su archivo original, e instala uno nuevo. Usted debería investigar y resolver las diferencias entre los dos archivos tan pronto como sea posible para asegurarse de que su sistema continúa funcionando adecuadamente.
Dado que actualizar es realmente una combinación de desinstalación e instalación, usted puede encontar los errores de los dos modos, y uno más: Si RPM piensa que está intentando actulizar un paquete con una versión antigua, usted verá:
$ rpm -Uvh foo-1.0-1.i386.rpm foo package foo-2.0-1 (which is newer) is already installed error: foo-1.0-1.i386.rpm cannot be installed
Para obligar a RPM a ``actualizar de todas maneras, use --oldpackage en la línea de comandos.
Consultar la base de datos de paquetes instalados se realiza mediante la opción rpm -q. Un uso simple es rpm -q foo lo que imprimirá el nombre, versión y número de desarrollo del paquete instalado foo:
$ rpm -q foo rpm-2.0-1
En lugar de especificar el nombre del paquete, usted puede usar las siguientes opciones con -q para especificar de qué paquete(s) quiere hacer una consulta. Éstas son llamadas Opciones de Especificacion de Paquetes (Package Specification Options).
Hay varias formas de especificar qué informacion mostrar sobre los paquetes consultados. Las siguientes opciones son usadas para seleccionar la información en la que usted está interesado. Son las llamadas Opciones de Selección de Información.
Para aquellas opciones que presenten listas de archivos, uste puede añadir -v a la línea de comandos para obtener la lista en el conocido formato ls -l.
Verificar un paquete es comparar la información sobre los archivos instalados desde un paquete con la misma información del paquete original. Entre otras cosas, verificar compara el tamaño, chequeo MD5, permisos, tipo, usuario y grupo de cada archivo.
rpm -V verifica un paquete. Usted puede usar cualquiera de las Opciones de Selección de Paquetes (Package Selection Options) listadas para consultar, para especificar los paquetes que desea verificar. Un uso simple es rpm -V foo lo que verifica que todas los archivos el paquete foo estén como cuando fueron originalmente instaladas. Por ejemplo:
Si todo es verificado adecuadamente no habrá ninguna salida en pantalla. Si hay alguna discrepancia sí habrá informacion presentada. El formato de la salida es una cadena de 8 caracteres, un posible ``c denotando un archivo de configuración, y despues el nombre del archivo. Cada uno de los 8 caracteres denota el resultado de la comparación de un atributo del archivo con el valor de ese atributo en la base de datos RPM. Un solo ``. (punto) significa que el test ha sido pasado. Los siguientes caracteres denotan fallo de ciertos tests:
5 Chequeo MD5 S Tamaño del archivo L Enlace simbólico T Modificación de la fecha del archivo D Dispositivo U Usuario G Grupo M Modo (incluye permisos y tipos de archivo)
Si usted ve alguna salida en pantalla, use su mejor juicio para determinar si usted deberá borrar o reinstalar el paquete, o alguna manera de resolver el problema.
Instalación
Los paquetes RPM tienen típicamente nombres de archivo como foo-1.0-1.i386.rpm, que incluye el nombre del paquete (foo), versión (1.0), desarrollo (1), y arquitectura (i386). Instalar un paquete es tan sencillo como:
$ rpm -ivh foo-1.0-1.i386.rpm foo
Como puede ver, RPM imprime en pantalla el nombre del paquete (el cual no es necesariamente el mismo que el archivo, el cual puede ser 1.rpm), e imprime una sucesión de símbolos de rejilla a medida que el paquete es instalado, como un medidor del progreso de la instalación.
La instalación de paquetes está diseñada para ser sencilla, pero puede obtener algunos errores:
Paquete ya instalado
Si el paquete está ya instalado, usted verá:
$ rpm -ivh foo-1.0-1.i386.rpm foo package foo-1.0-1 is already installed error: foo-1.0-1.i386.rpm cannot be installed
Si usted quiere instalar el paquete de todas maneras, usted puede usar --replacepkgs en la línea de comandos, lo que le dice a RPM que ignore el error.
Conflicto de archivos
Si intenta instalar un paquete que contiene un archivo que ha sido ya instalado por algún otro paquete, usted verá:
# rpm -ivh foo-1.0-1.i386.rpm foo /usr/bin/foo conflicts with file from bar-1.0-1 error: foo-1.0-1.i386.rpm cannot be installed
Para hacer que RPM ignore el error, use --replacefiles en la línea de comandos.
Dependencias no resueltas
Los paquetes RPM pueden ``depender de otros paquetes, lo cual significa que requieren que otros paquetes sean instalados para funcionar correctamente. Si intenta instalar un paquete para el cual existe una dependencia no satisfecha, usted verá:
$ rpm -ivh bar-1.0-1.i386.rpm failed dependencies: foo is needed by bar-1.0-1
Para arreglar este error usted deberá instalar los paquetes requeridos. Si usted desea forzar la instalación de todas maneras (una mala idea ya que el paquete probablemente no funcionará correctamente), use --nodeps en la línea de comandos.
Desinstalación
Desinstalar un paquete es tan sencillo como instalarlo:
$ rpm -e foo
Note que hemos usado el nombre ``foo para el paquete, no el nombre del paquete original ``foo-1.0-1.i386.rpm.
Usted puede encontrar un error de dependencias cuando intente desinstalar el paquete si algún otro paquete instalado depende del que está intentando borrar. Por ejemplo:
$ rpm -e foo removing these packages would break dependencies: foo is needed by bar-1.0-1
Para hacer que RPM ignore el error y desinstale el paquete de todas maneras (lo cual es una mala idea porque el paquete que depende de éste probablemente falle y no funcione correctamente), use --nodeps en la línea de comandos.
Actualizando
Actualizar un paquete es casi como instalar un paquete.
$ rpm -Uvh foo-2.0-1.i386.rpm foo
Lo que usted no ve arriba es el hecho de que RPM desinstala automáticamente cualquier versión antigua del paquete foo. De hecho usted quizá quiera siempre usar -U para instalar paquetes, ya que funciona bien incluso cuando no hay ninguna versión anterior del paquete instalada.
Dado que RPM realiza actualizaciones inteligentes de los paquetes con archivos de configuración, quizás vea un mensaje como:
saving /etc/foo.conf as /etc/foo.conf.rpmsave
Esto significa que sus cambios al archivo de configuracion puedan no ser ``reversiblemente compatibles con el nuevo archivo de configuración en el paquete, por lo que RPM salva su archivo original, e instala uno nuevo. Usted debería investigar y resolver las diferencias entre los dos archivos tan pronto como sea posible para asegurarse de que su sistema continúa funcionando adecuadamente.
Dado que actualizar es realmente una combinación de desinstalación e instalación, usted puede encontar los errores de los dos modos, y uno más: Si RPM piensa que está intentando actulizar un paquete con una versión antigua, usted verá:
$ rpm -Uvh foo-1.0-1.i386.rpm foo package foo-2.0-1 (which is newer) is already installed error: foo-1.0-1.i386.rpm cannot be installed
Para obligar a RPM a ``actualizar de todas maneras, use --oldpackage en la línea de comandos.
Consulta
Consultar la base de datos de paquetes instalados se realiza mediante la opción rpm -q. Un uso simple es rpm -q foo lo que imprimirá el nombre, versión y número de desarrollo del paquete instalado foo:
$ rpm -q foo rpm-2.0-1
En lugar de especificar el nombre del paquete, usted puede usar las siguientes opciones con -q para especificar de qué paquete(s) quiere hacer una consulta. Éstas son llamadas Opciones de Especificacion de Paquetes (Package Specification Options).
- -a consulta todos los paquetes instalados.
- -f <file> consultará el paquete al que pernenece <file>.
- -F es la misma que -f excepto que toma los nombres de archivo de la entrada estándar
(p.e. find /usr/bin | rpm -qF). - -p <packagefile> consulta el paquete <packagefile>.
- -P es como -p excepto que toma el nombre de archivo del paquete desde la entrada estándar
(p.e. find /mnt/cdrom/RedHat/RPMS | rpm -qP).
Hay varias formas de especificar qué informacion mostrar sobre los paquetes consultados. Las siguientes opciones son usadas para seleccionar la información en la que usted está interesado. Son las llamadas Opciones de Selección de Información.
- -i presenta información del paquete como nombre, descripción, desarrollo, tamaño, fecha de construcción, fecha de instalación, vendedor, y otra información miscelánea.
- -l presenta la lista de archivos que el paquete ``posee.
- -s presenta el estado de todos los archivos del paquete. Hay sólo dos posibles estados: normal y perdido.
- -d presenta un lista de archivos marcados como documentación (paginas ``man, paginas ``info, README's, etcétera).
- -c presenta una lista de archivos marcados como archivos de configuración. Estos son los archivos que usted cambia tras la instalación para adaptar el paquete a su sistema (sendmail.cf, passwd, inittab, etcétera).
Para aquellas opciones que presenten listas de archivos, uste puede añadir -v a la línea de comandos para obtener la lista en el conocido formato ls -l.
Verificación
Verificar un paquete es comparar la información sobre los archivos instalados desde un paquete con la misma información del paquete original. Entre otras cosas, verificar compara el tamaño, chequeo MD5, permisos, tipo, usuario y grupo de cada archivo.
rpm -V verifica un paquete. Usted puede usar cualquiera de las Opciones de Selección de Paquetes (Package Selection Options) listadas para consultar, para especificar los paquetes que desea verificar. Un uso simple es rpm -V foo lo que verifica que todas los archivos el paquete foo estén como cuando fueron originalmente instaladas. Por ejemplo:
- Para verificar que un paquete contiene un archivo en particular: rpm -Vf /bin/vi
- Para verificar TODOS los paquetes instalados: rpm -Va
- Para verificar un paquete instalado con su correspondiente paquete RPM: rpm -Vp foo-1.0-1.i386.rpm Esto puede ser útil si sospecha que su base de datos de paquetes RPM esta corrupta.
Si todo es verificado adecuadamente no habrá ninguna salida en pantalla. Si hay alguna discrepancia sí habrá informacion presentada. El formato de la salida es una cadena de 8 caracteres, un posible ``c denotando un archivo de configuración, y despues el nombre del archivo. Cada uno de los 8 caracteres denota el resultado de la comparación de un atributo del archivo con el valor de ese atributo en la base de datos RPM. Un solo ``. (punto) significa que el test ha sido pasado. Los siguientes caracteres denotan fallo de ciertos tests:
5 Chequeo MD5 S Tamaño del archivo L Enlace simbólico T Modificación de la fecha del archivo D Dispositivo U Usuario G Grupo M Modo (incluye permisos y tipos de archivo)
Si usted ve alguna salida en pantalla, use su mejor juicio para determinar si usted deberá borrar o reinstalar el paquete, o alguna manera de resolver el problema.
Valora este capítulo:
Autor y licencia de 'Red Hat Linux 5.0 - Usando RPM'
|
Opiniona sobre 'Red Hat Linux 5.0 - Usando RPM' (15)
Tu nombre debe tener tres caracteres como mínimo.
Es necesario que te des de alta con una cuenta de correo válida.
Es necesario que te des de alta con una cuenta de correo válida.
El contenido del título de tu opinión debe tener tres caracteres como mínimo.
Es obligatorio que selecciones una valoración del recurso.
El contenido del comentario de tu opinión debe tener tres caracteres como mínimo.
Opina sobre este tutorial |
Wikis relacionados con 'Red Hat Linux 5.0 - Usando RPM'
Este documento describe el uso del formato de paquetes de instalación que se ha convertido...
Más »
Esta es la distribución de Linux en la que se basan tanto Mandrake como Suse...
Más »
Si has oído hablar de Samba y deseas ver qué es lo que puede hacer...
Más »
En particular el desarrollo de las telecomunicaciones y de los nuevos medios de comunicación basados...
Más »
El principal objetivo de este documento es lograr que el lector adquiera la capacidad de...
Más »

