O problema:
Quando eu digito:
dpkg-query -Wf '${Package;-40}${Priority}\n' | sort -b -k2,2 -k1,1
Recebo uma lista de todos os pacotes instalados na minha máquina, exemplo:
...
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
...
Recentemente, executei um script que instalou muitas coisas e agora minha máquina responde com: /usr/bin/mandb: can't write to /var/cache/man/2694: No space left on device
(os caminhos mudam, mas sempre me diz que não há mais espaço).
Os rótulos possíveis que vejo são:
- padrão
- extra
- importante
- opcional
- obrigatório
Descomprometi alterações em vários repositórios e quero poder enviar por push minhas alterações locais, mas continuo recebendo este erro quando tento enviar por push:
$ 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
Devo dizer também que sei que nem tudo está atualizado.
O sistema:
Isto está em um raspberry pi rodando raspbian "wheezy".
A questão:
Tenho várias centenas de pacotes instalados. Como removo todos os pacotes rotulados como 'extra'? Esta é a melhor maneira de liberar espaço na minha máquina? Descomprometi alterações em vários repositórios e quero poder enviar minhas alterações locais.
Eu também aceitaria uma resposta que removesse tudo, exceto o necessário e importante. O Git está rotulado como opcional e eu preferiria mantê-lo (embora eu sempre possa instalá-lo novamente após remover todos os pacotes desnecessários).
Desde já, obrigado!!
Responder1
Você pode usar o seguinte comando para limpar todos os pacotes opcionais e extras:
sudo apt-get --simulate purge $(dpkg-query -Wf '${Package;-40}${Priority}\n' | awk '$2 ~ /optional|extra/ { print $1 }')
O --simulate
sinalizador permite ver o que será removido sem realmente remover tudo. Remova o sinalizador para realmente desinstalar os pacotes.
Você precisará reinstalar o git, pois ele será removido junto com os outros pacotes opcionais e extras.
Você pode precisar de alguns pacotes opcionais e extras, portanto remova-os com cuidado. Mais aqui:https://askubuntu.com/questions/79665/keep-only-essential-packages
Responder2
Você teria que verificarondevocê fica sem espaço. O df(1)
comando informa quais sistemas de arquivos estão cheios.
Um motivo comum para falta de espaço são arquivos de log grandes (verifique em /var/log
, seu sistema deve ter comandos para limpar logs obsoletos). Observe que sort(1)
usa arquivos temporários, in var/tmp
ou /tmp
, se algum deles contiver muito lixo, poderá falhar por falta de espaço.
Responder3
Como você tem o aptitude instalado, ele pode ajudá-lo aqui. Inicie aptitude
e limite (atalho: l
) a visualização aos pacotes correspondentes
~i ~pextra
Vero manual on-lineou /usr/share/doc/aptitude/README
para uma referência de termo de pesquisa.
Agora você pode optar por desinstalar todos eles: pressione -
sob cada título de nível superior para marcar os pacotes para desinstalação (mantém os arquivos de configuração) ou _
para marcá-los para limpeza (remove os arquivos de configuração) e depois g
prosseguir. Você tem a oportunidade de revisar a lista caso queira manter alguns dos pacotes.