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:

[[email protected] 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:

[[email protected] 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í:

[[email protected] 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:

[[email protected] estudiante]# yum clean packages
0 archivos eliminados
[[email protected] estudiante]# yum clean metadata
Caché caducada
85 archivos eliminados
[[email protected] estudiante]# yum clean expire-cache
Caché caducada
0 archivos eliminados
[[email protected] 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:

[[email protected] 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 :

[[email protected] 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

 

TE RECOMENDAMOS  RuntimeError: TransactionItem not found for key: kernel-devel

 

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

 

  • Buscamos las repos que no están habilitadas:
[[email protected] 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:

[[email protected] 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:

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

 

TE RECOMENDAMOS  Cambiar la zona horaria en Linux (Timezone)

 
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 :

[[email protected] estudiante]# rm -rf /var/cache/yum/x86_64/7/base/
[[email protected] estudiante]# rm -rf /var/cache/yum/x86_64/7/epel/
[[email protected] estudiante]# rm -rf /var/cache/yum/x86_64/7/extras/

 

  • Y comprobamos que ya tenemos espacio libre
[[email protected] 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