Gestión de paquetes en CentOS

2
252

Éste artículo es continuación de Gestión de Paquetes en Debian. Hoy veremos las herramientas yum y rpm utilizadas en distribuciones como Red Hat Enterprise Linux, CentOS, openSUSE, Fedora, etcétera.

Yellow Dog Updater, Modified (yum)

Según fuentes en Internet, el desarrollo de la herramienta yum estuvo inicialmente a cargo de la distribución Yellow Dog Linux, la cual se lanzó por primera vez en el 1999, para dar soporte al procesador PowerPC que usaba Apple Macintosh en ese entonces. yum se creó como un sustituto del Yellow Dog Updater – yup., herramienta que se instalaba por defecto en esa distribución.

De lo anterior inferimos su nombre: Yellow Updater Modified.

Yellow Dog Linux es un producto de Terra Soft Solutions, compañía especializada en software basado en Linux para la arquitectura PowerPC, y se basa en CentOS y Fedora, que es casi lo mismo que decir que se basa en Red Hat Enterprise Linux.

El 11 de noviembre de 2008 Fixstars compra Terrasoft, haciéndose con todos los derechos de Yellow Dog Linux.

Así las cosas, la compañía Red Hat© encontró a yum como una valiosa adición a su sistema operativo y la hizo su Gestor de Paquetes y Repositorios por defecto.

Para más información consulte las páginas del manual:

[root@centos ~]# man yum

RPM

Originalmente denominado como Red Hat Package Manager, su primera versión se liberó hace 20 años, o sea, en el 1997. Actualmente su nombre indica la abreviatura del formato y extensión de los paquetes que maneja: .rpm. También se utiliza en muchas distribuciones Linux, y se portó a sistemas operativos como Novell NetWare y al AIX de la IBM.

Un paquete rpm contiene una determinada cantidad de archivos. Pueden ser archivos compilados de un software (BRPMs) o archivos fuentes (SRPMs).

Mediante un indicador o tag en el encabezado – header de cada archivo rpm, el manejador de paquetes diferencia a los formatos binarios o fuentes de los paquetes normales rpm. Los paquetes fuentes personalizados pueden venir con la extensión .scr.rpm.

En muchas formas, yum es el Front End para la Herramienta de Gestión de Paquetes de bajo nivel rpm. La relación de ambas es parecida a la del apt-get con el dpkg de Debian.

A diferencia de yum, rpm NO resuelve las dependencias de forma automática y éstas se deben instalar de forma manual.

Para más información consulte las páginas del manual:

[root@centos ~]# man rpm

Estación de trabajo base de los ejemplos

Para el desarrollo de los ejemplos tomaremos como base la Workstation o Servidor que instalamos en el post CentOS 7: como Workstation, e invitamos a Usted, amiga(o) lector, a que instale en una máquina virtual o física a éste excelente sistema operativo. Le servirá de práctica y podrá seguirnos con mayor facilidad.

Ejemplos de la Gestión de Paquetes en CentOS 7

yum

  • Conocer de forma rápida las diferentes opciones del comando yum.
[root@centos ~]# yum --help

Como tiene muchas opciones, solo mencionaremos las mas utilizadas.

  • Para conocer cuales repositorios utilizamos durante la instalación y cuales paquetes instalamos, la vía mas rápida y expedita es consultar el archivo /root/anaconda-ks.cfg. Para ello iniciamos una sesión remota vía ssh como el usuario root:
[root@centos ~]# cat anaconda-ks.cfg | more
#version=DEVEL
# System authorization information
auth --enableshadow --passalgo=sha512
repo --name="Base-Repo" --baseurl=http://192.168.10.1/repos/centos/7/base/x86_64/
repo --name="CentosPlus-Repo" --baseurl=http://192.168.10.1/repos/centos/7/centosplus/x86_64/
repo --name="Epel-Repo" --baseurl=http://192.168.10.1/repos/centos/7/epel/x86_64/
repo --name="Updates-Repo" --baseurl=http://192.168.10.1/repos/centos/7/updates/x86_64/
....
%packages
@^infrastructure-server-environment
@base
@core
chrony

%end

Los paquetes – %packages con el símbolo @ al principio, indican a Grupos de Paquetes. Instalamos un servidor de infraestructura y es por lo cual la salida del comando anterior devuelve tan pocos paquetes instalados. Es importante declarar al DVD de instalación en la lista de repositorios, si deseamos conocer más sobre los Grupos de Paquetes.

  • Repositorios actualmente declarados
[root@centos ~]# nano /etc/yum.repos.d/centos.repo
[Media-Repo]
name=CentOS-$releasever
baseurl=file:///media
gpgcheck=0
enabled=1

[Base-Repo]
name=CentOS-$releasever
baseurl=http://192.168.10.1/repos/centos/7/base/x86_64/
gpgcheck=0
enabled=1

[CentosPlus-Repo]
name=CentOS-$releasever
baseurl=http://192.168.10.1/repos/centos/7/centosplus/x86_64/
gpgcheck=0
enabled=1

[Epel-Repo]
name=CentOS-$releasever
baseurl=http://192.168.10.1/repos/centos/7/epel/x86_64/
gpgcheck=0
enabled=1

[Extras-Repo]
name=CentOS-$releasever
baseurl=http://192.168.10.1/repos/centos/7/extras/x86_64/
gpgcheck=0
enabled=1

[Updates-Repo]
name=CentOS-$releasever
baseurl=http://192.168.10.1/repos/centos/7/updates/x86_64/
gpgcheck=0
enabled=1
  • Limpiar la caché de paquetes descargados; actualizar la lista de paquetes disponibles, y listar todos los repositorios declarados.
[root@centos ~]# yum clean all
Complementos cargados:fastestmirror, langpacks
Limpiando repositorios: Base-Repo CentosPlus-Repo Epel-Repo Extras-Repo
                      : Media-Repo Updates-Repo
Cleaning up everything
Cleaning up list of fastest mirrors

[root@centos ~]# yum update

[root@centos ~]# yum repolist all
  • Listar los Grupos de Paquetes por nombre y por el id del grupo
[root@centos ~]# yum groups list
[root@centos ~]# yum group list

[root@centos ~]# yum groups list id
[root@centos ~]# yum group list id
  • Paquetes que contiene el Grupo “Servidor de infraestructura” id = infrastructure-server-environment.
[root@centos ~]# yum groupinfo infrastructure-server-environment
  • Listar TODOS los paquetes instalados y guardarlo en el archivo /root/instalados.txt.
[root@centos ~]# yum list installed > instalados.txt

 

informationNo es ocioso para nada revisar detenidamente el contenido del archivo generado /root/instalados.txt con la lista de todos los paquetes instalados.

  • Conocer cuales paquetes instalamos si escogimos durante la instalación un Servidor de Virtualización.
[root@centos ~]# egrep "(vir|kvm|qemu)" instalados.txt
  • Buscar paquetes
[root@centos ~]# yum search bind9
Complementos cargados:fastestmirror, langpacks
Loading mirror speeds from cached hostfile
Aviso: No se ha encontrado ningún resultado para: bind9
No matches found

[root@centos ~]# yum search bind

[root@centos ~]# yum search qemu-kvm virt-manager
  • Obtener información del paquete bind9 y sus dependencias, y posteriormente proceder a su instalación
[root@centos ~]# yum info bind

[root@centos ~]# yum deplist bind

[root@centos ~]# yum install bind
  • Eliminar el paquete bind antes instalado.
[root@centos ~]# yum erase bind
  • Instalar el Escritorio MATE. id de Grupo: mate-desktop-environment.
[root@centos ~]# yum groupinstall mate-desktop-environment
[root@centos ~]# yum groupinstall "MATE Desktop"
  • Eliminar el grupo mate-desktop-environment.
[root@centos ~]# yum groupremove "MATE Desktop"
[root@centos ~]# yum groupremove mate-desktop-environment
  • Actualizar todos los paquetes instalados en el sistema a su última versión
[root@centos ~]# yum upgrade
  • Instalar el paquete nano-2.3.1-10.el7.x86_64.rpm manualmente descargado.
[root@centos ~]# yum install nano-2.3.1-10.el7.x86_64.rpm
[root@centos ~]# yum localinstall nano-2.3.1-10.el7.x86_64.rpm
  • ¿Cuál paquete provee el comando /usr/bin/auvirt?.
[root@centos ~]# yum provides auvirt

rpm

  • Obtener rápidamente el resumen de las opciones de rpm.
[root@centos ~]# rpm --help
  • Instalar el paquete nano-2.3.1-10.el7.x86_64.rpm.
[root@centos ~]# rpm --install --verbose --hash nano-2.3.1-10.el7.x86_64.rpm
[root@centos ~]# rpm -ivh nano-2.3.1-10.el7.x86_64.rpm
  • Eliminar el paquete nano, y comprobar si efectivamente se borró.
[root@centos ~]# rpm --erase --verbose nano
[root@centos ~]# rpm -ev nano

[root@centos ~]# rpm --query nano
el paquete nano no está instalado

information

El comando anterior NO pregunta si lo desea eliminar o no. Simplemente lo borra del sistema.

  • Listar TODOS los paquetes instalados.
[root@centos ~]# rpm --query --all
[root@centos ~]# rpm -qa
  • ¿A cuál paquete pertenece el comando /usr/bin/auvirt?
[root@centos ~]# rpm --query --file /usr/bin/auvirt 
audit-2.6.5-3.el7_3.1.x86_64

[root@centos ~]# rpm -qf /usr/bin/auvirt
audit-2.6.5-3.el7_3.1.x86_64

Resumen

Esperamos que éste y el post anterior Gestión de Paquetes en Debian le sirvan para su diario trabajo, o al menos como un recordatorio de las características básicas de la Gestión de Paquetes en Debian y CentOS.

¡Hasta pronto! y siga con nosotros.

2 Comentarios

  1. Muy buen post sobre el manejo y administracion de la paqueteria en CentOS (se aplica igual a Fedora y RHEL) a traves de las herramientas yum (Yellow Updater Modified) y rpm (Red Hat Package Manager); el autor lo facilita a traves de numerosos ejemplos.
    A destacar el log de la instalacion en el archivo /root/anaconda-ks.cfg y la declaracion del Repositorio de CentOS “/etc/yum.repos.d/centos.repo” en la red local mediante http.

    Articulo sumamente practico, gracias nuevamente al autor Federico.

Dejar respuesta

Please enter your comment!
Please enter your name here