Uma das minhas máquinas é o EeePC Surf de 2 GB , um netbook limpo com recursos muito limitados. Tão limitado que, no momento, tenho 22 MB de espaço livre restante.
Nele, estou executando o Arch Linux com o Openbox DE e uma série de aplicativos necessários para que ele funcione como um PC móvel.
Quais métodos estão disponíveis para eliminar algum espaço usado desnecessário?
arch-linux
openbox
efficiency
Stefan
fonte
fonte
du -sh /
para ver onde a maior parte do seu espaço está sendo usada.du -sh /*
?cd /
e correrdu -sh *
e detalhamento ... (você realmente não tem memória RAM suficiente para o material loja nele)Respostas:
Aqui estão alguns pontos que você pode começar:
Dê uma olhada nos pacotes instalados no seu sistema
pacman -Q
e remova os que você não precisa. Um bom começo pode ser anexar a-t
opção:Limpe o cache do pacote pacman com
pacman -Sc
Sempre use
pacman -Rs
para remover também dependências de pacotes não utilizadas.Para encontrar "arquivos grandes" e pastas que usam grandes partes do disco, uma boa adição ao
du
éxdiskusage
. Esta pequena ferramenta permite que você navegue rapidamente em seu sistema de arquivos e veja a representação gráfica do uso do disco nas pastas.fonte
pacman -cc
para limpar todo o cache, incluindo pacotes instalados, eu acho. Normalmente não é recomendado, pois você pode querer backups mais tarde.--cachedir
, então não preciso manter nenhum arquivo pkg./
, acheipacgraph
realmente útil. Ele pode classificar os pacotes instalados por tamanho, para que você possa priorizar melhor o que faz sentido remover. (Ela pode até mesmo desenhar gráficos de dependência SVG, mas é útil a partir de apenas a linha de comando.)ncdu
é uma alternativa legal de linha de comando paraxdiskusage
. O Baobab é de longe o melhor aplicativo gráfico para esse fim.AVISO: Essas idéias são apenas para usuários versados no Linux como um todo e no Arch Linux.
Se você estiver disposto a entrar em um território perigoso, poderá reduzir a instalação básica do Arch para menos de 500 MB instalados. Isso requer fazer algumas coisas muito perigosas:
/usr/lib/firmware
)/usr/lib/modules/...
).a
arquivos/usr/lib
(apenas se você nunca usar o sistema para compilar software. nota: isso inclui o uso demakepkg
)/usr/include
(apenas se você nunca usar o sistema para compilar software)/usr/share/doc
e/usr/share/info
/usr/share/man
/usr/share/terminfo
desnecessários e arquivos de fuso horário desnecessários de/usr/share/zoneinfo
strip *
em execução em todas as pastas que contêm binários executáveis (/usr/bin
e/usr/sbin
)upx
para comprimir binários maiores (os binários do Samba se prestam a este bem como eles tendem a ser bastante grande, uma vez que muitas vezes são compilados estaticamente.) Observe também que o uso deupx
meios de todo o binário descompactado deve caber dentro RAM durante a execução, portanto, esteja cansado de sistemas com pouca RAM.Antes de fazer qualquer coisa, faça um backup completo do seu sistema. Felizmente, o Linux torna isso relativamente fácil - se você pode conectar e montar um volume externo (por exemplo, uma unidade USB), pode fazer algo como
cd / && tar -cf /mnt/usb/mySystem.tar /
fazer backup de todo o sistema.Mais uma vez, observe que, na verdade, eu não recomendo fazer o procedimento acima (especialmente 7 a 9), a menos que você tenha conhecimento, experiência e entendimento aprofundados dos internos do Linux e do Arch Linux . Jogar com praticamente qualquer um dos arquivos que listei pode danificar um sistema de maneira horrível, por isso você foi avisado. Se você não sabe se o seu sistema precisa de um determinado arquivo de firmware, módulo, etc., faça sua pesquisa antes de mexer com ele. (Esteja avisado de que a remoção de módulos do kernel de que seu sistema precisa pode resultar em um sistema não inicializável ou em um sistema sem suporte para teclado / placa de rede / som / tela / etc. Ou todo tipo de comportamento inexplicável.)
Observe também que qualquer atualização de pacote pode e irá restaurar muitos dos arquivos removidos acima. Se você decidir seguir esse caminho, poderá eventualmente criar um script para a remoção de arquivos desnecessários e executá-lo após cada atualização principal do pacote. (Exemplo: atualizar o kernel trará de volta todos os módulos do kernel, bem como atualizará via dependência o pacote linux-firmware trazendo de volta todo o firmware
/usr/lib/firmware
.)Por fim, fique atento,
/var/log
pois os arquivos do diário crescerão com o tempo. Você pode remover os diários anteriores, mas manter os atuais fazendo algo comorm *\@*.journal
na pasta do diário.Executei com êxito um servidor NAS de um dispositivo Disk-on-Module de 512MB por meses usando essas técnicas, mas elas ainda não são para os fracos de coração. (Eu também usei o LinuxFromScratch para criar um projeto semelhante em apenas 128 MB de armazenamento, mas isso é outra história ...)
EDITAR / ADICIONAR:
Aqui estão mais alguns métodos que você pode usar para tentar obter algum espaço extra:
Livrar-se de
libgo
. Alibgo
biblioteca é fornecida com ogcc-libs
AFAIK e é usada apenas por aplicativos escritos no idioma Go. Não consigo pensar em nenhum aplicativo que precise dessa biblioteca. No meu sistema, ele tem 40 MB de tamanho. Quando você está tentando emagrecer, há muito espaço. Eu o removi das minhas "mini" instalações sem causar efeitos negativos em tudo o que faço (mas, novamente, sou eu, YMMV!)Encolhendo
libicudata.so
. São 27 MB no meu sistema. É basicamente uma tonelada de dados unicode / locale compactados em um objeto de biblioteca. Existe uma ferramenta on-line que pode criar versões menores deste arquivo, mas não foi atualizada para a versão atual (e você não pode usar arquivos mais antigos em versões mais recentes.) Não tentei fazer isso manualmente, mas se você puder descobrir como, pode economizar cerca de 20 a 22 MB desse arquivo.Se você usar o Python, você pode salvar 37MB ou assim, removendo a
test
biblioteca de python2:rm -r /usr/lib/python2.7/test
e cerca de 66MB por removê-lo para python3:rm -r /usr/lib/python3.6/test
.Novamente para Python, você pode se livrar dos
.pyo
arquivos e dos.py
arquivos. Os.pyo
arquivos são arquivos "otimizados", mas o Python nunca os utiliza realmente. Os.py
arquivos são o código-fonte bruto da biblioteca padrão. Os únicos arquivos que o Python normalmente lê ao executar o código Python são os.pyc
arquivos (compilados pelo python).cd /usr/lib/python2.7 && find . -name "*.pyo" -exec rm -v {} \;
ecd /usr/lib/python3.6 && find . -name "*.pyo" -exec rm -v {} \;
Removendo dados de localidade desnecessários. Existe um pacote AUR chamado
localepurge
que automatiza isso. Caso contrário, você tem que brincar/usr/share/locale
. Você precisa manter seu próprio local elocale.alias
. Para mim aqui nos EUA, mantendoen_US
elocale.alias
e remover tudo o resto raspado sobre 80MB.Agora, o que eu quero ver é uma ferramenta que analisa seu sistema e determina quais módulos do kernel você precisa e também quais arquivos de firmware você precisa. Essa seria uma boa maneira de limpar "com segurança" essas pastas ...
Ou talvez alguém deva montar uma "distro" do Arch que use
uClibc
oudiet-libc
ou algo semelhante. Esse pode ser um projeto divertido de verão. :-)fonte
upx
, ele não joga bem com todos os tipos de exectuables, ex: ele deixou mysqld & mongodb segfaultingNoExtract
definições (pode ser definido várias vezes), você pode resolver esse problema permanentemente. Um exemplo para atualizar apenas os drivers de atualização Realtek nic:NoExtract = usr/lib/firmware/* !usr/lib/firmware/rtl_nic/*
find /usr/lib/firmware -atime +30
encontraria arquivos de firmware que não são acessados em 30 dias. Deve ser seguro excluir esses arquivos.TLDR
Primeiro, o que é grande no sistema
Isso mostra uma lista classificada dos maiores diretórios em
/
Você pode fazer dois níveis abaixo:Meu resultado é:
Eu ignoro
/mnt
(porque essa é uma unidade externa) Dois dirs lembram:var
eusr
. Vamos ver o que há dentro:Então, um pouco mais fundo:
Vamos começar com os logs
Eu tenho 717mb
/var/log
.Eu não sou fã de excluir diretórios aleatoriamente, então vamos fazer da maneira limpa:
Vamos deixar apenas 100mb de logs:
Mais informações aqui sobre como configurar o journalctl aqui .
Pacotes
Eu tenho
660M /var/cache/pacman
. Tinha 1,8 GB, mas corripacman -Sc
para remover pacotes não utilizados. Vamos remover o resto:/ usr / share / locale
Muitos usuários o removem ou pelo menos limpam. Mas eu posso ser um problema . Mas confira o bleachbit (próximo parágrafo).
Bleachbit
Limpador automático . Excluirá muitas coisas, mas, na maioria das vezes, eram locais.
Você pode procurar mais coisas para excluir:
fonte
Total Installed Size: 209.70 MiB
du -xkd1
no/
diretório, ele não descerá para outros pontos de montagem.No disco de 4 GB no meu Eeepc com Ubuntu, ele ajudou a remover alguns arquivos de localidade (de / usr / share / locale) e arquivos de ajuda do Gnome (de / usr / share / gnome / help /). Ambos foram instalados para idiomas que não uso. Porém, não tenho certeza se o Arch Linux instala todos esses arquivos.
fonte
du -hs /usr/share/locale
tem cerca de 300MB ... posso apenasrm -rf
os arquivos desnecessários?/etc/locale.gen
e executar novamentelocale-gen
, deverá ter menos localizações pré-compiladas. Se você deseja liberar mais espaço de forma automatizada, também pode tentar aur.archlinux.org/packages.php?ID=11975 . (Mas é sem suporte e se ele quebra o seu sistema, você começa a manter as peças.)Eu sugiro AUTOMATIZAR olhando seus próprios arquivos muito antigos e ver se é necessário e removê-los. Isso pode ser feito com duas coisas. Um escrevendo um
find
comando para procurar arquivos muito antigos. e usando essa saída (talvez canal) para criarlograte
scripts para arquivar arquivos com mais de 3 meses e excluir arquivos com mais de 3 meses no arquivo e enviar um email para 1 dia antes de excluí-lo. Para ter certeza de que não perdeu nenhum arquivo importante. Então, finalmente, você precisaria dos seguintes comandos para realizar o acima:Eu não vou dar de colher para você. Eu fiz isso antes, foi bastante bem-sucedido com isso e depois foi descartado porque decidimos continuar com o
nagios
monitoramento, pois estava mais otimizado para fazer esse tipo de coisa em um servidor corporativo. Acho que se omail
comando ainda não estiver configurado para você, você pode achar que o descanso mais difícil deve ser direto. Tudo isso precisa ser feito através do script bash, colocando-o no job cron e executando a cada x dias. Aprenda o script bash, será muito útil não apenas para isso, mas para tornar sua vida mais fácil com o * nix. Portanto, use seu mecanismo de pesquisa favorito na Internet e leia sobre os comandos acima e o script bash. E amarre-os e teste-o. Uma vez satisfeito, coloque em uso regular. Eu garanto que será divertido fazer isso. Você aprenderá muito se não tiver feito isso antes.fonte