Cómo borrar la caché de paquetes en Manjaro

El otro día andaba mirando cuanto espacio me quedaba libre en el disco duro y me asusté del poquito que me quedaba, así que me puse a ver dónde podía rascar algunos gigas libres y después de tener la distribución instalada durante tiempo y haber instalado bastante morralla estaba claro, podía rascar de la caché de los paquetes.

 ¿Dónde se guardan los paquetes?

Los paquetes que descargamos mediante Pacman, se guardan en la ruta:
/var/cache/pacman/pkg

Primero descarga el fichero tar en el directorio y luego realiza la instalación mediante el fichero descargado, este procedimiento puede parecer inofensivo pero claro esto si pasa con cada aplicación que utilizas puede llegar a desmadrarse cada cierto tiempo.

Pero todos estos paquetes descargados no se van a ir solitos, por lo que vamos a tener que limpiarlos de forma manual o haciendo un script que realice la tarea por nosotros, de momento vamos a ver como eliminarlo de forma manual.

¿Cómo elimino los paquetes en caché?

Primero, por si te abruma la curiosidad de saber cuantos paquetes hay en el directorio de caché puedes ejecutar el siguiente comando en la terminal.

$ sudo ls /var/cache/pacman/pkg/ | wc -l

A mí me han salido 3385.
Si queremos cotillear más sobre el tema y saber realmente cómo se traducen estos 3385 paquetes en GB podemos introducir el siguiente comando.
$ du -sh /var/cache/pacman/pkg/

En mi caso, nada más y nada menos que 13GB.

Podemos hacer la limpieza de varias formas, pacman proporciona un script llamado paccache, que nos permite borrar los paquetes en caché dejando la última versión cacheada o el número de versiones que indiquemos (1,2,3..).

  • Comando para dejar las 3 últimas versiones de los paquetes guardadas en caché.
    $ sudo paccache -r
  • Comando para dejar únicamente la última versión del paquete guardada en caché. (la k indica el número de versiones de paquetes a mantener en caché)
    $ sudo paccache -rk 1
  • Comando para eliminar todas las versiones en caché de los paquetes desinstalados. (la u hace referencia a paquetes desinstalados)
    $ sudo paccache -ruk0
  • Comando para eliminar TODO, esto puede provocar algún problemilla que se comentará a continuación. (Para eliminar únicamente todos los paquetes desinstalados quita una c del comando)
    $ sudo pacman -Scc

¿Qué puede salir mal?

Los únicos problemas que te puedes encontrar es querer volver a instalar dicho paquete y no tener acceso a el (vía internet) o la que sea, el mismo problema nos encontramos si queremos ejecutar una versión anterior de un programa porque la nueva nos da problemas, en realidad nada grave si tenemos acceso a internet.

Automatización de la limpieza.

Ya que estamos inmersos en este tema, vamos a automatizar la limpieza utilizando un hook de pacman que se ejecutará en cada acción de pacman, para hacerlo vamos a crear un fichero en:
/etc/pacman-d/hooks/clean_package_cache.hook
$ sudo mkdir /etc/pacman.d/hooks
$ sudo nano /etc/pacman.d/hooks/clean_package_cache.hook

En el fichero insertamos el siguiente contenido:
[Trigger]
Operation = Upgrade
Operation = Install
Operation = Remove
Type = Package
Target = *
[Action]
Description = Cleaning pacman cache...
When = PostTransaction
Exec = /usr/bin/paccache -r

¡Guardamos el fichero y ya está!, ahora cada vez que hagamos un upgrade, install o remove de un package con pacman, el hook se lanzará borrando la caché y dejando únicamente las 3 últimas versiones de cada paquete instalado.

Comentarios

Aún no hay comentarios. ¿Por qué no comienzas el debate?

Deja una respuesta

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *