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.
En este artículo:
- Comprobar ocupación del FileSystem
- Eliminar la caché de paquetes, de metadatos, de la bbdd de yum, de la caché caducada o toda la caché de yum
- Solución cuando siguen quedando ficheros de caché tras borrar la caché de yum
-
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 |
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 |
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:
[root@localhost 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 |
[roo[email protected] estudiante]# yum clean dbcache 0 archivos eliminados |
Vemos la página de man para yum clean (o 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 |
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:
[[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 |
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/ [ro[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 |