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 me hacen creer 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 de manera que 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 ...
fuente
cron
o regularsystemd
.Respuestas:
No, pacman no elimina los paquetes antiguos de su caché (
/var/cache/pacman/pkg
), por lo que, con el tiempo, puede llenarse.Puede adoptar dos enfoques para borrar el caché: la fuerza bruta con
pacman -Sc
:O, para un enfoque más matizado, puede usar una de las utilidades que se incluye con pacman-contrib
paccache
:De manera predeterminada,
paccache
eliminará todas las últimas tres versiones de un paquete instalado, pero puede cambiar este número con el-k, --keep
interruptor. También hay un-d, --dryrun
interruptor para previsualizar sus cambios. Verpaccache --help
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 la ejecución de Arch sea mucho más fácil. Puedes ver la lista completa con:
fuente
--clean
interruptor doble : eso prohíbe volver fácilmente al paquete de trabajo, en caso de que ocurra algún problema con la última versión (por ejemplo, el nuevo paquete se basa en una versión anterior de lib o Python; lo mismo con el hardware y la última versión núcleo). Encuentro configurar el caché pacman en otro lugar que no sea/
una solución mucho mejor (solo configure la ruta en /etc/pacman.conf ).paccache
, puede obtenerlo instalando elpacman-contrib
paquete.$ pacman -Ql pacman-contrib | awk -F"[/ ]" '/\/usr\/bin\/./ {print $NF}'
evitar una línea en blanco en los resultados? ;-)rm -rf /var/cache/pacman/pkg
era lo incorrectoSu paquete de caché está en
/var/cache/pacman/pkg/
.NOTA: los
pacman
paquetes se actualizaron en 2018 y además requieren instalaciónpacman-contrib
para usar scripts / herramientas como sepaccache
describe a continuación.Hacer:
Para hacer
-dryrun
y ver qué puede eliminar una ejecución de esa utilidad la próxima vez que lo haga:Para eliminar paquetes en caché. 17 gbs suena empinado. Asegúrese de no tener algunos registros de fuga. Hacer:
O incluso solo:
Para una idea más general de lo que está sucediendo.
fuente
pacman -Scc
hace lo que pides, pero no es recomendable. De la WikiPor otro lado, cuando desinstalo paquetes, prefiero usarlos
pacman -Rnsc
, ya que también elimina las dependencias de paquetes y 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.fuente
rm /var/cache/pacman/pkg/*
entonces? O bien, al menos por defecto, supongo. He reubicado mi caché de paquetes/tmp
en la mayoría de las máquinas hace mucho tiempo y dejésquid
manejar una única caché central en el enrutador. No es tan fácil comopacman -Scc
si.Sugiero encarecidamente el uso de en
paccache
lugar depacman -Sc
. Incluso hay un indicador muy efectivo para eliminar selectivamente las versiones de paquetes desinstalados-u
. Las banderas depaccache
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-k
,--keep <num>
: mantenga "num" de cada paquete en el caché (predeterminado: 3)Ejemplo: compruebe las versiones de caché restantes de los paquetes desinstalados
fuente
-u
depaccache
. Ejemplos de paquetes grandes son, por ejemplo, Gnome, KDE o Texlive para darle una idea.-k
bandera era nueva para mí y no estaba muy bien explicada en el diálogo de ayuda, por lo que su uso aquí fue útil.