Limpiar la caché de yum

Si queremos liberar espacio de un filesystem, en ocasiones es posible obtener algo de espacio extra al limpiar la caché de yum.

Yum es un gestor de paquetes de Linux. Trabaja con repositorios de software (colecciones de paquetes).

Cuando se descarga, instala o elimina un paquete, es posible que el paquete aún se guarde en la caché de yum. Y es probable que necesitemos borrar esa caché de paquetes de vez en cuando para liberar espacio.

limpiar cache yum

 

En este artículo:

 

 

 

  • Primero comprobamos la ocupación del filesystem:

[root@localhost estudiante]# du -sh /var/*
0 /var/adm
184M /var/cache
0 /var/crash
0 /var/db
0 /var/empty
0 /var/ftp
0 /var/games
0 /var/gopher
0 /var/kerberos
164M /var/lib
0 /var/local
0 /var/lock
11M /var/log
0 /var/mail
0 /var/nis
0 /var/opt
0 /var/preserve
0 /var/run
24K /var/spool
0 /var/tmp
0 /var/www
0 /var/yp

comprobar ocupacion cache de yum

 

y en el directorio /var/cache podemos encontrar  el subdirectorio de yum:

[root@localhost estudiante]# ls -la /var/cache/
total 12
drwxr-xr-x. 11 root root 126 dic 21 17:10 .
drwxr-xr-x. 21 root root 4096 dic 19 15:23 ..
drwxr-xr-x. 2 root root 6 may 18 2020 bpf
drwxr-xr-x. 22 root root 4096 jun 8 12:34 dnf
drwx------. 3 apache apache 19 jul 31 2020 httpd
drwxr-xr-x. 2 root root 6 sep 17 2020 krb5rcache
drwx------. 2 root root 23 jun 8 12:34 ldconfig
drwxr-xr-x. 3 root root 21 dic 21 17:10 libX11
drwxr-xr-x. 33 root root 4096 jun 8 12:34 man
drwx------. 2 root root 6 dic 21 15:26 private
drwxr-xr-x. 3 root root 20 oct 1 2020 yum

listar directorio var cache

 

Podemos ver todos los paquetes que han quedado cacheados aquí:

[root@localhost estudiante]# ls -lha /var/cache/yum/x86_64/7
total 12K
drwxr-xr-x. 6 root root 126 dic 19 02:31 .
drwxr-xr-x. 3 root root 15 mar 19 2020 ..
drwxr-xr-x. 4 root root 278 dic 19 02:30 base
drwxr-xr-x. 4 root root 4,0K dic 19 02:30 epel
drwxr-xr-x. 4 root root 183 dic 19 02:30 extras
-rw-r--r--. 1 root root 0 dic 19 02:30 .gpgkeyschecked.yum
-rw-r--r--. 1 root root 312 dic 19 02:31 timedhosts
-rw-r--r--. 1 root root 408 dic 19 02:30 timedhosts.txt
drwxr-xr-x. 4 root root 183 dic 19 02:30 updates

 

  • Podemos eliminar la caché de paquetes, de metadatos, de la bbdd de yum, de la caché caducada o toda la caché de yum:

[root@localhost estudiante]# yum clean packages
0 archivos eliminados
[root@localhost estudiante]# yum clean metadata
Caché caducada
85 archivos eliminados
[root@localhost estudiante]# yum clean expire-cache
Caché caducada
0 archivos eliminados
[root@localhost estudiante]# yum clean dbcache
0 archivos eliminados

 

Vemos la página de man para yum clean (o dnf clean):

man dnf clean

 

—-> Importante: yum clean elimina solamente la cache de las repos que están habilitadas en /etc/yum.repos.d/

 

  • Y procedemos a borrar toda la caché de yum:

[root@localhost estudiante]# yum clean all
47 archivos eliminados

 

 

En este caso vemos que siguen quedando ficheros de caché porque muchas repos no están habilitadas pero han dejado sus ficheros de caché en el directorio /var/cache/yum :

[root@localhost estudiante]# ls -lha /var/cache/yum/x86_64/7
total 12K
drwxr-xr-x. 6 root root 126 dic 19 02:31 .
drwxr-xr-x. 3 root root 15 mar 19 2020 ..
drwxr-xr-x. 4 root root 278 dic 19 02:30 base
drwxr-xr-x. 4 root root 4,0K dic 19 02:30 epel
drwxr-xr-x. 4 root root 183 dic 19 02:30 extras
-rw-r--r--. 1 root root 0 dic 19 02:30 .gpgkeyschecked.yum
-rw-r--r--. 1 root root 312 dic 19 02:31 timedhosts
-rw-r--r--. 1 root root 408 dic 19 02:30 timedhosts.txt
drwxr-xr-x. 4 root root 183 dic 19 02:30 updates

 

 

Solución cuando siguen quedando ficheros de caché tras borrar la caché de yum

 

  • Buscamos las repos que no están habilitadas:
[root@localhost estudiante]# grep enabled /etc/yum.repos.d/*
/etc/yum.repos.d/CentOS-Stream-AppStream.repo:enabled=1
/etc/yum.repos.d/CentOS-Stream-BaseOS.repo:enabled=1
/etc/yum.repos.d/CentOS-Stream-Debuginfo.repo:enabled=0
/etc/yum.repos.d/CentOS-Stream-Extras.repo:enabled=1
/etc/yum.repos.d/CentOS-Stream-HighAvailability.repo:enabled=0
/etc/yum.repos.d/CentOS-Stream-Media.repo:enabled=0
/etc/yum.repos.d/CentOS-Stream-Media.repo:enabled=0
/etc/yum.repos.d/CentOS-Stream-PowerTools.repo:enabled=0
/etc/yum.repos.d/CentOS-Stream-RealTime.repo:enabled=0
/etc/yum.repos.d/elrepo.repo:enabled=1
/etc/yum.repos.d/elrepo.repo:enabled=0
/etc/yum.repos.d/elrepo.repo:enabled=0
/etc/yum.repos.d/elrepo.repo:enabled=0
/etc/yum.repos.d/epel-modular.repo:enabled=1
/etc/yum.repos.d/epel-modular.repo:enabled=0
/etc/yum.repos.d/epel-modular.repo:enabled=0
/etc/yum.repos.d/epel-playground.repo:enabled=0
/etc/yum.repos.d/epel-playground.repo:enabled=0
/etc/yum.repos.d/epel-playground.repo:enabled=0
/etc/yum.repos.d/epel.repo:enabled=1
/etc/yum.repos.d/epel.repo:enabled=0
/etc/yum.repos.d/epel.repo:enabled=0
/etc/yum.repos.d/epel-testing-modular.repo:enabled=0
/etc/yum.repos.d/epel-testing-modular.repo:enabled=0
/etc/yum.repos.d/epel-testing-modular.repo:enabled=0
/etc/yum.repos.d/epel-testing.repo:enabled=0
/etc/yum.repos.d/epel-testing.repo:enabled=0
/etc/yum.repos.d/epel-testing.repo:enabled=0

 

Vemos las repos habilitadas:

[root@localhost estudiante]# yum repolist
id del repositorio nombre del repositorio
appstream CentOS Stream 8 - AppStream
baseos CentOS Stream 8 - BaseOS
elrepo ELRepo.org Community Enterprise Linux Repository - el8
epel Extra Packages for Enterprise Linux 8 - x86_64
epel-modular Extra Packages for Enterprise Linux Modular 8 - x86_64
extras CentOS Stream 8 - Extras

 

  • Entonces , podemos eliminar la cache de los repositorios deshabilitados, habilitándolos temporalmente con –enablerepo ,   de esta forma:

[root@localhost estudiante]# yum clean all --enablerepo="elrepo-extras"
0 archivos eliminados
[root@localhost estudiante]# yum clean all --enablerepo="elrepo-kernel"
0 archivos eliminados
[root@localhost estudiante]# yum clean all --enablerepo="elrepo-testing"
0 archivos eliminados
[root@localhost estudiante]# yum clean all --enablerepo="epel-debuginfo"
0 archivos eliminados
[root@localhost estudiante]# yum clean all --enablerepo="elrepo-extras"
0 archivos eliminados

 

 
Como podemos ver, no se han encontrado ficheros de caché pertenecientes  a estas repos, seguramente los ficheros de caché pertenecen a repos muy antiguas que ya no se encuentran en el sistema (de hecho en esta máquina se realizó una actualización de CentOS 7 a CentOS 8 Stream); Así que eliminaremos de forma manual estos ficheros de caché (solamente después de haber intentado eliminarlos de la forma correcta, y comprobar que son ficheros de repos ya inexistentes en la máquina).

 

  • Podemos eliminar manualmente la caché de los repositorios que no están habilitados en  /etc/yum.repos.d/*.repo :

[root@localhost estudiante]# rm -rf /var/cache/yum/x86_64/7/base/
[root@localhost estudiante]# rm -rf /var/cache/yum/x86_64/7/epel/
[root@localhost estudiante]# rm -rf /var/cache/yum/x86_64/7/extras/

 

  • Y comprobamos que ya tenemos espacio libre
[root@localhost estudiante]# du -sh /var/cache/*
0 /var/cache/bpf
13M /var/cache/dnf
0 /var/cache/httpd
0 /var/cache/krb5rcache
28K /var/cache/ldconfig
0 /var/cache/libX11
948K /var/cache/man
0 /var/cache/private
8,0K /var/cache/yum