Este breve artículo demuestra cómo efectuar una limpieza de ports y paquetes en un sistema FreeBSD, con el objetivo de recuperar espacio en disco. Al mismo tiempo en que se actualiza el sistema y se elimina todo software no utilizado.
Todo el proceso se divide en una serie de pasos interactivos, los cuales se detallan a continuación.
Actualizar los paquetes:
# pkg update # pkg upgrade
Verificar la integridad de los paquetes instalados y las dependencias:
# pkg check -sa # pkg check -da
Este último comando verifica las dependencias de paquetes e instala cualquier dependencia faltante.
Realizar una limpieza de paquetes no utilizados (huérfanos):
# pkg autoremove
Limpiar la caché de paquetes descargados:
# pkg clean
Este comando borra las versiones anteriores de paquetes descargados. Si se quiere eliminar toda la caché (vaciarla), simplemente ejecutar pkg clean -a
.
Actualizar el árbol de ports:
# portsnap fetch update
Verificar y actualizar la información de dependencias de todos los ports:
# portmaster --check-depends
Buscar entradas desactualizadas en el árbol de ports:
# portmaster -y --check-port-dbdir
Limpiar ports que ya no son dependencias necesarias junto con los archivos fuente no relacionados a un port instalado:
# portmaster -y -s # portmaster -y --clean-distfiles
Si se trata de un sistema de larga data, y que ha pasado por varias migraciones, tal vez conviene directamente borrar todos los distfiles manualmente:
rm -fr /usr/ports/distfiles/*
Juntando todo en un script
Es posible automatizar todo el proceso con un pequeño script:
#!/bin/sh pkg update -q pkg upgrade -y pkg check -qy -sa pkg check -qy -da pkg autoremove -qy pkg clean -qy portsnap fetch update portmaster --check-depends portmaster -y --check-port-dbdir portmaster -y -s portmaster -y --clean-distfiles
Referencias
- Using pkg for Binary Package Management
- Using the Ports Collection
- The Distribution Files
man pkg-update
man pkg-upgrade
man pkg-check
man pkg-autoremove
man pkg-clean
man portsnap
man portmaster