Si tens un disc dur de poca capacitat i utilitzes Arch Linux, podria ser bona idea netejar la memòria cau de paquets (pkg) del sistema

Netejar memòria cau de paquets de Pacman

Fa any i mig vaig escriure un article sobre una cosa que em va agradar de Manjaro, per extensió també disponible en altres sistemes basats en Arch Linux. Estic parlant de la possibilitat de fer downgrade (baixar de versió) d'un paquet a una versió anterior. En part això és possible per la memòria cau de paquets d'Arch, on es guarden, per defecte, les tres últimes versions de cada paquet. És clar, això sona bé, però no tant si el teu disc dur no té gaire emmagatzematge.

Fins que els discos SSD siguin tan barats com els de tota la vida, si és que aquell moment arriba algun dia, els discos durs poden ser una d'aquestes tres opcions: grans i cars; petits i barats; o un híbrid, on hi ha part SSD i part HDD. A la segona i tercera opció podem tenir el mateix problema, ja que la HDD, la que ofereix més emmagatzematge, la solem deixar per a dades i usem la SSD per al sistema operatiu. És en aquests casos en què hem de vigilar la memòria cau de paquets d'Arch Linux. I, si cal, netejar-la.

Netejar la memòria cau de paquets d'Arch, eliminar-la o deixar-la com està

aquesta memòria cau guardarà les tres darreres versions de cada paquet a /var/cache/pacman/pkg. Cal vigilar-la, perquè encara amb el límit de tres, pot passar que la carpeta creixi i creixi fins a fregar o superar els 10GB demmagatzematge, depenent de la quantitat de programari que tinguem instal·lat. I, recordeu, parlem de memòria cau, és a dir, una cosa que hi és per si de cas, però que pot no ser necessària.

Pacman té una opció per eliminar les versions velles de la memòria cau. suo pacman -Sc eliminarà només les velles versions i deixarà la darrera que tinguem instal·lada, és a dir, el pkg de la que tenim instal·lada. Encara que és una opció de Pacman, es diu que no és una cosa recomanada, però l'argument seria que no podríem fer el downgrade com se suposa que ho hauríem de fer. En aquest cas hauríem d'acudir als repositoris oficials i triar-ne una versió anterior.

El que gestiona això de les darreres tres versions és Paccache, i podem recuperar espai amb aquestes ordres:

El primer seria mirar quants paquets tenim instal·lats i veure què ocupen, en el meu cas un total de 1981 paquets amb un pes total de 13GB:

sudo ls /var/cache/pacman/pkg/ | wc -l
du -sh /var/cache/pacman/pkg/

Veure número de paquets i el seu pes

Si volem eliminar tots els paquets, menys els últims tres, una cosa que sol ser automàtica però podria no estar funcionant, escriurem:

sudo paccache -r

Si us adoneu, a mi m'ha recuperat poc (1.52GB), i no em preocupa no poder tornar a una versió anterior, per la qual cosa després he fet servir el suo pacman -Sc:

suo pacman -Sc

Amb això últim, de 13GB que tenia a la memòria cau de paquets d'Arch, Manjaro en el meu cas, em que quedat amb només 4GB. Ens farà dues preguntes: a la primera ens consulta si volem eliminar els paquets, i cal dir-li que sí; a la segona ens diu de treure repositoris, i aquí és millor dir-li que no.

IMPORTANT: tot allò explicat aquí funciona tal qual, però que ningú esborri la carpeta /pkg o en cas contrari el sistema no tindrà on ficar les noves instal·lacions. Això «m'ho va explicar un amic» fa anys.

Encara vols eliminar més?

Molt malament ha d'estar un disc dur o cal tenir moltes manies perquè calgui fer una neteja més profunda, però es pot. La comanda seria suo paccache -rk 1, On la k indica el nombre de paquets a mantenir. Si es volen eliminar tots els paquets ja desinstal·lats, es pot fer amb l'ordre suo paccache -ruk0. D'això, la u indica paquets desinstal·lats.

Si es vol eliminar tota la memòria cau, i deixar-la en 0GB, la comanda seria suo pacman -Scc, però això ho recomanaria només en casos extrems on ja no tinguem espai al disc dur. Tot allò eliminat amb les ordres exposades aquí no es pot recuperar.

Automatitzar el procés

Tot això de netejar la memòria cau de paquets d'Arch Linux es pot fer automàticament, però creant un fitxer i afegint-hi algunes línies. Els passos a seguir per automatitzar aquesta tasca de neteja serien:

  1. Obrim un terminal i escrivim:
sudo mkdir /etc/pacman.d/hooks
  1. Ara escrivim aquesta altra ordre:
sudo nano /etc/pacman.d/hooks/clean_package_cache.hook
  1. Dins l'editor, afegim aquestes línies:
[Trigger] Operation = Upgrade Operation = Install Operation = Remove Type = Package Target = * [Action] Description = Cleaning pacman cache... When = PostTransaction Exec = /usr/bin/paccache -r
  1. Salvem i guardem. A partir d'ara, la memòria cau de paquets es netejarà automàticament cada vegada que Pacman treballi actualitzant, instal·lant o eliminant paquets.

I així es pot aconseguir una mica despai extra. És clar que si el disc dur és prou gran, el millor és deixar les coses com a tal com han estat dissenyades, però aquestes opcions existeixen i ens poden treure d'un problema.


Deixa el teu comentari

La seva adreça de correu electrònic no es publicarà. Els camps obligatoris estan marcats amb *

*

*

  1. Responsable de les dades: AB Internet Networks 2008 SL
  2. Finalitat de les dades: Controlar l'SPAM, gestió de comentaris.
  3. Legitimació: El teu consentiment
  4. Comunicació de les dades: No es comunicaran les dades a tercers excepte per obligació legal.
  5. Emmagatzematge de les dades: Base de dades allotjada en Occentus Networks (UE)
  6. Drets: En qualsevol moment pots limitar, recuperar i esborrar la teva informació.