¿Cómo eliminar paquetes antiguos instalados por pacman en Arch Linux?

¿Cómo eliminar paquetes antiguos instalados por pacman en Arch Linux?

Recientemente instalé Arch Linux y descubrí que estoy consumiendo una gran cantidad de almacenamiento con relativa rapidez. Por alguna razón, ya he usado 17 GB en tan solo 2 semanas. No tengo una gran cantidad de software instalado, por lo que me hacen creer que todos los paquetes antiguos se mantienen en alguna parte.

Para respaldar esto, he notado que si instalé un paquete, lo elimino y luego lo reinstalo, Pacman simplemente descomprime y reinstala el software sin tener que volver a descargarlo.

Después de instalar mi sistema base, antes del software adicional, usé alrededor de 2 GB, tal vez. Desde entonces sólo instalé Matlab, Skype, Wine y algunos otros programas pequeños. Por supuesto, también instalé bibliotecas faltantes y similares, pero no valen ni cerca de 15 GB.

¿Estoy completamente equivocado aquí o Arch nunca elimina paquetes antiguos al descargar/actualizar a nuevas versiones?

Si es así, ¿cómo elimino estos paquetes no utilizados?

Además, cuando elimino los paquetes instalados, usopacman -R ...

Respuesta1

No, pacman no elimina paquetes antiguos de tu caché ( /var/cache/pacman/pkg), por lo que, con el tiempo, puede llenarse.

Puede adoptar dos enfoques para borrar el caché: el de fuerza bruta con pacman -Sc:

-c, --clean
Elimina los paquetes que ya no están instalados del caché, así como las bases de datos de sincronización actualmente no utilizadas para liberar espacio en el disco. Cuando pacman descarga paquetes, los guarda en un directorio de caché. Además, las bases de datos se guardan para cada base de datos de sincronización que descargue y no se eliminan incluso si se eliminan del archivo de configuración pacman.conf(5). Utilice un parámetro --clean para eliminar únicamente los paquetes que ya no están instalados; use dos para eliminar todos los archivos del caché. En ambos casos, tendrá la opción de sí o no para eliminar paquetes y/o bases de datos descargadas no utilizadas.

O, para un enfoque más matizado, puede utilizar una de las utilidades que se incluyen con pacman-contrib paccache:

paccache es una utilidad flexible de limpieza de caché de Pacman, que tiene numerosas opciones para ayudar a controlar cuánto y qué se elimina de cualquier directorio que contenga archivos comprimidos de paquetes de Pacman.

De forma predeterminada, paccache -reliminará todas las versiones excepto las tres últimas de un paquete instalado, pero puede cambiar este número con el -k, --keepinterruptor. También hay un -d, --dryruninterruptor para obtener una vista previa de los cambios. También puede utilizar la -m, --move <dir>opción para mover los paquetes a un directorio separado de su elección. Ver paccache -ho paccache --helppara todos los interruptores.

Hay una serie de utilidades en el paquete pacman-contrib para ayudar con la administración de paquetes, vale la pena revisarlas todas y comprender cómo funcionan y pueden hacer que ejecutar Arch sea mucho más fácil. Puedes ver la lista completa con:

pacman -Ql pacman-contrib | awk -F"[/ ]" '/\/usr\/bin/ {print $NF}'

Respuesta2

La caché de su paquete está en formato /var/cache/pacman/pkg/.

NOTA: pacmanLos paquetes se actualizaron en 2018 y, además, requieren instalación pacman-contribpara usar scripts/herramientas como paccachese describe a continuación.

Hacer:

paccache -d

Para hacer una prueba -dryruny ver qué podría eliminar una ejecución de esa utilidad la próxima vez que lo haga:

paccache -r

Para eliminar paquetes almacenados en caché. 17 GB suena caro. Asegúrate de no tener algunos registros fuera de control. Hacer:

du -h /var/log

O incluso simplemente:

du -h /var

Para tener una idea más general de lo que está pasando.

Respuesta3

Recomiendo fuertemente el uso depaccacheen lugar de pacman -Sc. Incluso existe un indicador muy eficaz para eliminar selectivamente las versiones de paquetes desinstalados -u. Las banderas que paccacherecomiendo son (como parte de paccache v5.0.2):

  • -d, --dryrun: realizar un ensayo y solo encontrar paquetes candidatos
  • -r, --remove: eliminar paquetes candidatos
  • -u, --uninstalled: apunta solo a paquetes desinstalados
  • -k, --keep <num>: mantiene "num" de cada paquete en el caché (predeterminado: 3)

Ejemplo: comprobar las versiones de caché restantes de los paquetes desinstalados

paccache -dvuk0

Respuesta4

pacman -SccHace lo que estás pidiendo, pero no es recomendado. Desde elwiki

También es posible vaciar completamente la carpeta de caché conpacman -Scc, pero hacerlo se considera una mala práctica, ya que, además de lo anterior, también impide reinstalar un paquete directamente desde la carpeta de caché en caso de necesidad, obligando así a volver a descargarlo. Nunca debes usarlo a menos que exista una necesidad desesperada de más espacio en disco.

Además, cuando desinstalo paquetes, prefiero usar pacman -Rnsc, ya que también elimina las dependencias de los paquetes, así como los paquetes que dependen de éste. Como siempre, lee atentamente qué paquetes se están eliminando, ya que muy fácilmente podrías dejar nuestro sistema en un estado inutilizable.

información relacionada