Yum es la herramienta de Centos para la gestión de paquetes
En versiones anteriores había que instalar un plugin yum-security (para Centos 5) o yum-plugin-security (para Centos 6 y 7) Para comprobar si lo tenemos instalado <sxh>rpm -qa |grep -i yum-security</sxh>
Más info:
<sxh>yum install yum-plugin-security</sxh>
Más información en https://linux.die.net/man/8/yum-security
Creamos el siguiente script para cron.
<sxh> #!/bin/bash YUM=/usr/bin/yum $YUM -y -R 100 -d 0 -e 0 update yum $YUM -y -R 10 -e 0 -d 0 update </sxh>
Donde:
<sxh>yum list installed </sxh>
Por ejemplo para buscar paquetes que el nombre contenga php <sxh>yum list installed | grep -i php </sxh>
Listado de la fecha de instalación de todos los paquetes <sxh>rpm -qa -last</sxh>
Para saber cuándo se instaló un paquete en particular<sxh>rpm -q nombre_paquete -last</sxh>
Con el comando <sxh>yum history</sxh> Obtenemos un histórico de los cambios. <sxh bash> [root@]# yum history ID | Linea de comandos | Día y hora | Acción(es) | Modific
29 | -y install php php-curl | 2018-05-21 13:21 | Install | 3 28 | update | 2018-05-21 13:17 | I, U | 10 27 | install yum-utils | 2018-05-21 13:14 | Install | 4 26 | install http://rpms.remi | 2018-05-21 13:00 | Install | 1 25 | install php-gd | 2018-05-21 12:23 | Install | 11 24 | install wget | 2018-05-21 11:52 | Install | 1 23 | install httpd | 2018-05-21 11:46 | Install | 5 22 | update | 2018-05-21 11:43 | Update | 27
</sxh> Podemos obtener más información sobre un determinado cambio con yum history info ID <sxh>yum history info 29</sxh> que daría como salida <sxh> ID de transacción : 29 Hora inicial : Mon May 21 13:21:47 2018 Rpmdb inicial : 403:f5122f693c232264926551793ecd11b87b85e057 Hora final : 13:21:49 2018 (2 segundos) Rpmdb final : 406:357a12e260ab03908297ee2c9985d509ae422f03 Usuario : root <root> Codigo-obtenido : Exito Línea de comando : -y install php php-curl php-cli php-gd Transacción realizada con:
Instalado rpm-4.11.3-32.el7.x86_64 @base Instalado yum-3.4.3-158.el7.centos.noarch @base Instalado yum-metadata-parser-1.1.4-10.el7.x86_64 @anaconda Instalado yum-plugin-fastestmirror-1.1.31-45.el7.noarch @base
Paquetes modificados:
Instalación de dependencias libargon2-20161029-2.el7.x86_64 @epel Instalar php-7.2.5-1.el7.remi.x86_64 @remi-php72 Instalar php-cli-7.2.5-1.el7.remi.x86_64 @remi-php72
</sxh>
Para deshacer el cambio ejecutaríamos yum history undo <ID> <sxh>yum history undo 29</sxh>
Pero si hemos hecho varios cambios y queremos volver a un punto concreto ejecutaremos yum history roolback <ID> <sxh>yum history rollback 22</sxh>
A veces es útil descargar ciertos paquetes para luego poder copiarlos a un servidor que no tiene conexión a Internet. Para eso podemos usar yum de la siguiente forma yum install –downloadonly –downloaddir=/directorio_destino <paquete> Por ejemplo para descargar el servidor apache. <sxh> yum install –downloadonly –downloaddir=/root/paquetes httpd</sxh>
Una vez copiado los paquetes a la máquina destino, para instalarlos yum –nogpgcheck localinstall <paquete> <sxh> yum –nogpgcheck localinstall httpd-2.4.6-80.el7.centos.x86_64.rpm</sxh>
Si al hacer un yum update obtenemos un error del tipo metadata file does no match checksum se soluciona añadiendo al fichero /etc/yum.con lo siguiente <sxh>http_caching=packages</sxh>
Ejecutamos entonces un <sxh>yum clean metadata</sxh> o bien <sxh>yum clean all</sxh> y ya podemos volver a ejecutar el yum update sin problemas.