desarrollo-web-br-bd.com

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

Recientemente instalé Arch Linux y descubrí que estoy consumiendo mucho almacenamiento relativamente rápido. Por alguna razón, ya he usado 17GB en solo 2 semanas. No tengo una gran cantidad de software instalado, así que creo que todos los paquetes antiguos se mantienen en algún lugar.

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

Después de instalar mi sistema base, antes del software adicional, usé aproximadamente 2 GB o menos. Desde entonces solo he instalado Matlab, Skype, Wine y algunos otros pequeños programas. Por supuesto, también he instalado bibliotecas faltantes y similares, pero no valen casi 15 GB.

¿Estoy completamente equivocado aquí o Arch nunca borra los 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, uso pacman -R ...

54
sherrellbc

No, pacman no elimina los paquetes antiguos de su caché (/var/cache/pacman/pkg) entonces, con el tiempo, puede llenarse.

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

-c, --clean
Elimine los paquetes que ya no están instalados de la memoria caché, así como las bases de datos de sincronización actualmente no utilizadas para liberar espacio en disco. Cuando pacman descarga paquetes, los guarda en un directorio de caché. Además, las bases de datos se guardan para cada DB de sincronización que descargue, y no se eliminan incluso si se eliminan del archivo de configuración pacman.conf (5). Use un interruptor de limpieza para eliminar solo los paquetes que ya no están instalados; use dos para eliminar todos los archivos del caché. En ambos casos, tendrá una 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 usar una de las utilidades que se incluye con pacman-contrib, paccache:

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

De forma predeterminada, paccache eliminará todas las versiones de un paquete instalado excepto las últimas tres, pero puede cambiar este número con el -k, --keep interruptor. También hay una -d, --dryrun cambie para obtener una vista previa de los cambios. Ver paccache --help para todos los interruptores.

Hay una serie de utilidades en el paquete pacman-contrib para ayudar con la administración del paquete, vale la pena analizarlas todas y obtener una comprensión de 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}'
65
jasonwryan

El paquete de caché está en /var/cache/pacman/pkg/.

NOTA:pacman los paquetes se actualizaron en 2018 y adicionalmente requieren instalación pacman-contrib para usar scripts/herramientas como paccache se describe a continuación.

Hacer:

paccache -d

Para hacer un -dryrun y vea qué puede eliminar una ejecución de esa utilidad la próxima vez que lo haga:

paccache -r

Para eliminar paquetes en caché. 17 gbs suena empinado. Asegúrese de no tener algunos registros de fuga. Hacer:

du -h /var/log

O incluso solo:

du -h /var

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

15
mikeserv

Sugiero encarecidamente el uso de paccache en lugar de pacman -Sc. Incluso hay un indicador muy efectivo para eliminar selectivamente las versiones de paquetes desinstalados -u. Las banderas de paccache que recomiendo son (como parte de paccache v5.0.2):

  • -d, --dryrun: realiza una ejecución en seco, solo encuentra paquetes candidatos
  • -r, --remove: eliminar paquetes candidatos
  • -u, --uninstalled: solo paquetes desinstalados de destino
  • -k, --keep <num>: mantenga "num" de cada paquete en el caché (predeterminado: 3)

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

paccache -dvuk0
8
strpeter

pacman -Scc hace lo que pides, pero no es recomendable. Desde el Wiki

También es posible vaciar completamente la carpeta de caché con pacman -Scc , pero hacerlo se considera una mala práctica, ya que, además de lo anterior, también evita reinstalar un paquete directamente desde la carpeta de caché en caso de necesidad, lo que obliga a volver a descargarlo. Nunca debe usarlo a menos que haya una necesidad desesperada de más espacio en disco.

Por otro lado, cuando desinstalo paquetes, prefiero usar pacman -Rnsc, ya que también elimina las dependencias de paquetes, así como los paquetes que dependen de este. Como siempre, lea cuidadosamente qué paquetes se están eliminando, ya que podría dejar nuestro sistema en un estado inutilizable.

7
aprad046