La cuestión:
Cuando escribo:
dpkg-query -Wf '${Package;-40}${Priority}\n' | sort -b -k2,2 -k1,1
Obtengo una lista de todos los paquetes instalados en mi máquina, ejemplo:
...
raspberrypi-artwork extra
raspberrypi-bootloader extra
raspberrypi-ui-mods extra
raspi-config extra
rpi-update extra
sonic-pi extra
ssh extra
triggerhappy extra
wireless-tools extra
xkb-data extra
adduser important
apt important
apt-utils important
aptitude important
aptitude-common important
bsdmainutils important
...
Recientemente ejecuté un script que instaló muchas cosas y ahora mi máquina responde con: /usr/bin/mandb: can't write to /var/cache/man/2694: No space left on device
(las rutas cambian pero siempre me dice que no queda espacio).
Las posibles etiquetas que veo son:
- estándar
- extra
- importante
- opcional
- requerido
Tengo cambios no confirmados en varios repositorios y quiero poder enviar mis cambios locales, pero sigo recibiendo este error cuando intento enviar:
$ git push
fatal: write error: No space left on device
error: Couldn't write .git/refs/remotes/origin/master.lock
error: Cannot update the ref 'refs/remotes/origin/master'.
Everything up-to-date
También debo decir que sé que no todo está actualizado.
El sistema:
Esto está en una raspberry pi que ejecuta raspbian "wheezy".
La pregunta:
Tengo varios cientos de paquetes instalados. ¿Cómo elimino todos los paquetes etiquetados como "extra"? ¿Es esta la mejor manera de liberar espacio en mi máquina? Tengo cambios no confirmados en varios repositorios y quiero poder impulsar mis cambios locales.
También aceptaría una respuesta que elimine todo menos lo necesario e importante. Git está etiquetado como opcional y preferiría conservarlo (aunque siempre puedo instalarlo nuevamente después de eliminar todos los paquetes innecesarios).
¡¡Gracias de antemano!!
Respuesta1
Puede utilizar el siguiente comando para eliminar todos los paquetes opcionales y adicionales:
sudo apt-get --simulate purge $(dpkg-query -Wf '${Package;-40}${Priority}\n' | awk '$2 ~ /optional|extra/ { print $1 }')
La --simulate
bandera le permite ver lo que se eliminará sin eliminarlo todo. Elimine la bandera para desinstalar paquetes.
Deberá reinstalar git, ya que se eliminará junto con los demás paquetes opcionales y adicionales.
Es posible que necesite algunos paquetes opcionales y adicionales, así que retírelos con cuidado. Más aquí:https://askubuntu.com/questions/79665/keep-only-essential-packages
Respuesta2
Tendrías que comprobardóndete quedas sin espacio. El df(1)
comando le indica qué sistemas de archivos están llenos.
Una razón común para quedarse sin espacio son los archivos de registro de gran tamaño (consulte en /var/log
, su sistema debería tener comandos para limpiar los registros obsoletos). Tenga en cuenta que sort(1)
utiliza archivos temporales, ya sea en var/tmp
o /tmp
, si alguno de ellos contiene demasiado material, puede fallar por falta de espacio.
Respuesta3
Como tiene aptitude instalado, puede ayudarle aquí. Inicie aptitude
y limite (atajo l
:) la vista a paquetes que coincidan
~i ~pextra
Verel manual en líneao /usr/share/doc/aptitude/README
para una referencia de término de búsqueda.
Ahora puede optar por desinstalarlos todos: presione -
debajo de cada encabezado de nivel superior para marcar los paquetes para desinstalar (mantiene los archivos de configuración), o _
para marcarlos para purgar (elimina los archivos de configuración), y luego g
continuar. Tiene la oportunidad de revisar la lista en caso de que desee conservar algunos de los paquetes.