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
rpm -qa |grep -i yum-security
Más info:
yum install yum-plugin-security
yum updateinfo summary
yum updateinfo list available
yum info-sec
yum updateinfo list bugfix
yum updateinfo list security all
yum updateinfo ELBA-2018-0840
yum --security update-minimal
yum --security update
yum update --cve [CVE]
yum update --advisory=ELBA-2016-2319
Más información en https://linux.die.net/man/8/yum-security
Creamos el siguiente script para cron.
#!/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
Donde:
yum list installed
Por ejemplo para buscar paquetes que el nombre contenga php
yum list installed | grep -i php
Listado de la fecha de instalación de todos los paquetes
rpm -qa -last
Para saber cuándo se instaló un paquete en particular
rpm -q nombre_paquete -last
Con el comando
yum historyObtenemos un histórico de los cambios.
[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 | 27Podemos obtener más información sobre un determinado cambio con yum history info ID
yum history info 29que daría como salida
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
Para deshacer el cambio ejecutaríamos yum history undo <ID>
yum history undo 29
Pero si hemos hecho varios cambios y queremos volver a un punto concreto ejecutaremos yum history roolback <ID>
yum history rollback 22
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.
yum install --downloadonly --downloaddir=/root/paquetes httpd
Una vez copiado los paquetes a la máquina destino, para instalarlos yum –nogpgcheck localinstall <paquete>
yum --nogpgcheck localinstall httpd-2.4.6-80.el7.centos.x86_64.rpm
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
http_caching=packages
Ejecutamos entonces un
yum clean metadatao bien
yum clean ally ya podemos volver a ejecutar el yum update sin problemas.
yum clean all
yum update