miércoles, 30 de enero de 2013

Gestores de Paquetes: RPM y YUM

En los posts anteriores vimos algunos detalles del manejo de paquetes en distribciones Debian y derivadas, incluyendo Ubuntu y otras. RPM (Red Hat Package Manager) tuvo su inicio con Red Hat Linux 2.0 en 1995, y en la actualidad es el sistema de paquetes preferido por las distribuciones basadas en Red Hat, las cuales incluyen CentOS, openSUSE, Oracle Linux y muchas otras.

Un paquete RPM, al igual que los DEBs, consiste de un archivo de ficheros que el manejador de paquetes colocará en nuestro sistema. Además contiene el mismo tipo de información acerca de las dependencias, por lo que el sistema puede descargarlas e instalarlas también.

Como los paquetes DEB, un paquete RPM puede contener el bineario o ejecutable, el código fuente, o archivos independientes de la arquitectura como documentacipon. Un archivo RPM es un fichero cpio, el cual es un formato de archivo usado originalmente en cintas de copias de seguridad. Los RPM se componen de cuatro tipos de datos diferentes:

  • Datos que definen al RPM como tal.
  • Una firma para que el sistema pueda verificar si el archivo ha sido modificado, como lo es un hash MD5.
  • La cabezera o “header,” la cual contiene información acerca del paquete, como nombre, versión y un resumen.
  • El “payload,” o los archivos que el paquete instalará en nuestro sistema.
Al contrario que los paquetes Debian, visualizar algo de esta información no es tan fácil y no basta con descomprimir el paquete y ver los ficheros que contiene. Si deseamos echar una mirada a la firma o compararla con otra en el sistema, es necesario usar el comando rpm --checksig.

Para ver la información de cabecera podemos hacer una consulta al paquete con el comando rpm -qip. En donde la opción -q le indica a rpm que consulte el paquete, -i conseguir la información del mismo, y -p para el nombre del paquete específico.

Como mencionamos hace un momento, los RPM cuentan con una base de datos. La misma se encuentra en /var/lib/rpm, y este directorio contiene un número de sub directorios y archivos con información sobre los paquetes instalados en el sistema. La base de datos es creada durante la instalación del sistema. Luego de inicializada, todo paquete instalado en el sistema tendrá un récord en esta.

Para hacer una consulta esta base de datos podemos usar el mismo comando rpm con la opción -ql para un paquete en específico, por lo que debemos darle el nombre en el comando. Pero también podemos consultar toda la base de datos con la opción -qa

Los repositorios YUM
El software disponible vía YUM es mantenito en repositorios de Internet, en una máquina local o de la red local. Cada repositorio tiene un sub directorio llamado /repodata, el cual contiene información acerca del repositorio. Esta información es mantenida en un rango de archivos cabezera conocidos como primary, other y filelists.

Cada uno de estos cabezera es un XML comprimido en Gzip o en BZ2 SQLite. Un fichero llamado repomd.xml contiene información del repositorio como un todo.
Para configurar un repositorio YUM es necesario descargar el fichero .repo y copiarlo al directorio /etc/yum/yum.repos.d/ o crearlo manualmente. Opcionalmente, los cambios pueden incluirse en el fichero /etc/yum.conf, pero no es muy recomendado. Una vez configurado el repositorio ya podemos descargar o actualizar paquetes desde el mimso.

Una de las diferencias principales con respecto a los DEB y APT, es que una vez configurado un nuevo repositorio YUM no requiere un equivalente a apt-get update de APT. En vez de eso, cuando se requiera instalar un paquete cualquier, YUM revisará los respositorios disponibles para ese paquete cuando se ejecute el comando (cuando damos el comando yum install nano, YUM revisa todos los repositorios).

Algunos de los comandos más usados de YUM son:
  • yum search [término a buscar]: Buscará en cualquier repositorio configurado por el o los paquetes que contengan el término a buscar.
  • yum install [paquete]: Instalará el paquete indicado y sus dependencias.
  • yum check-updates: Listará los paquetes que tienen actualizaciones disponible.
  • yum update: Actualizará todos los paquetes que tienen actualizaciones disponible. Si especificamos un paquete por su nombre, solo actualizará ese paquete.
  • yum remove [paquete]: Removerá del sistema el paquete especificado y todas sus dependencias.

Para ampliar más, consulta los manuales de los comandos rpm y yum.
$ man rpm
$ man yum

No hay comentarios:

Publicar un comentario