System maintenance (Português)

From ArchWiki
Status de tradução: Esse artigo é uma tradução de System maintenance. Data da última tradução: 2023-10-30. Você pode ajudar a sincronizar a tradução, se houver alterações na versão em inglês.

Manutenção de sistema regular é necessário para o bom funcionamento do Arch durante um período de tempo. A manutenção periódica é uma prática à qual muitos usuários se acostumam.

Verifique por erros

Falha em serviços de systemd

Verifique se algum serviço do systemd falhou:

$ systemctl --failed

Veja Systemd#Usando units para mais informações.

Arquivos de log

Procure por erros nos arquivos de log localizados em /var/log/, bem como mensagens registradas no journal do systemd:

# journalctl -p 3 -b

Veja systemd/Journal para mais informações e opções de filtragem.

Veja Xorg#Solução de problemas para informações sobre onde e como o Xorg registra os erros.

Backup

Ter backups de dados importantes é uma medida necessária, uma vez que erros de processamento humano e de máquina são muito propensos a gerar corrupção com o passar do tempo, e também a mídia física onde os dados são armazenados está inevitavelmente destinada a falhar.

Veja Programas de sincronização e backup para muitas alternativas de aplicativos que podem se adequar ao seu caso. Veja Category:System recovery (Português) para outros artigos de internet.

É recomendável automatizar backups, consulte Inicialização automática#Em eventos de tempo.

Arquivos de configuração

Antes de editar quaisquer arquivos de configuração, crie um backup de forma que você possa reverter para uma versão funcional no caso de haver problemas. Editores como vim e emacs pode fazer isso automaticamente. Em uma escala maior, considere usar um gerenciador de configuração.

Para dotfiles (arquivos de configuração no diretório inicial), consulte dotfiles#Rastreando dotfiles diretamente com Git.

Lista de pacotes instalados

Mantenha uma lista de todos os pacotes instalados para que, se uma reinstalação completa for inevitável, seja mais fácil recriar o ambiente original.

Veja pacman/Dicas e truques#Lista de pacotes instalados para detalhes.

Base de dados do pacman

Veja pacman/Dicas e truques#Fazer backup da base de dados do pacman.

Metadados criptográficos

Veja Criptografia de dados em repouso#Backup para cenários de criptografia de disco.

Dados de sistema e de usuário

Veja Backup do sistema.

Atualizando o sistema

É recomendado realizar atualizações completas do sistema regularmente via Pacman#Atualizando pacotes, para aproveitar as últimas correções de erros e atualizações de segurança, além de evitar de ter que lidar com muitas atualizações de pacotes que exigem intervenção manual de uma só vez. Ao solicitar suporte da comunidade, é geralmente presumido que o sistema esteja atualizado.

Certifique-se de que a mídia de instalação do Arch ou outro CD/USB "live" de Linux esteja disponível, de forma que você possa facilmente recuperar seu sistema se houver um problema após a atualização. Se você está usando o Arch em um ambiente de produção, ou não puder se dar o luxo de tê-lo indisponível por algum motivo, teste alterações aos arquivos de configurações, bem como atualizações de pacotes de software, em um sistema duplicata não crítico (i.e sistema de homologação) primeiro. Então, se tudo funcionar corretamente, aplique as alterações no sistema de produção.

Se o sistema possui pacotes do AUR, atualize todos eles com muito cuidado.

pacman é uma ferramenta de gerenciamento de pacotes poderosa, mas ela não tenta resolver todos problemas possíveis. Os usuários devem estar vigilantes e ter responsabilidade pela manutenção de seu próprio sistema.

Leia antes de atualizar o sistema

Antes de atualizar, espera-se que os usuários visitem a página inicial do Arch Linux para verificar as últimas notícias ou, alternativamente, estejam inscritos no feed RSS ou na lista de discussão arch-announce. Quando atualizações exigirem intervenção fora do normal do usuário (mais do que pode ser tratado simplesmente seguindo as instruções fornecidas pelo pacman), uma notícia apropriada será publicada.

Antes de atualizar softwares fundamentais (como o kernel, xorg, systemd ou glibc) para uma nova versão, procure pelo fórum apropriado por algum relato de problema.

Da mesma forma, usuários devem estar cientes de que atualizar pacotes pode trazer problemas inesperados que podem precisar de intervenção imediata; portanto, é desencorajado atualizar um sistema estável logo antes dele ser necessário para realizar uma tarefa importante. Em vez disso, espere para atualizar até que haja tempo suficiente para resolver quaisquer problemas pós-atualização.

Dica: Você pode usar um hook do pacman como informantAUR que impede a atualização caso houverem noticias recentes do Arch que não foram lidas desde a última atualização.

Evite certos comandos do pacman

Evite fazer atualizações parciais. Em outras palavras, nunca execute pacman -Sy; em vez disso, sempre use pacman -Syu.

Geralmente evite usar a opção --overwrite com o pacman. A opção --overwrite leva um argumento contendo um glob. Quando usado, o pacman ignorará as verificações de conflitos de arquivos em busca de arquivos que correspondam ao glob. Em um sistema adequadamente mantido, ele deve ser usado somente quando explicitamente recomendado pelos Desenvolvedores do Arch. Veja a seção #Leia antes de atualizar o sistema.

Evite usar a opção -d com o pacman. pacman -Rdd pacote ignora verificações de dependência durante a remoção de pacote. Como resultado, um pacote fornecendo uma dependência crítica pode ser removido, resultando em um sistema quebrado.

Sem suporte a atualizações parciais

Arch Linux é uma distribuição de rolling release (ou lançamento contínuo). Isso significa que quando novas versões das bibliotecas são enviadas para os repositórios, os Desenvolvedores e Mantenedores de Pacote recompilam todos os pacotes nos repositórios que precisam ser recompilados com as bibliotecas. Por exemplo, se dois pacotes dependem da mesma biblioteca, atualizar apenas um pacote pode também atualizar a biblioteca (como uma dependência), o que pode então quebrar o outro pacote que depende de uma versão antiga da biblioteca.

É por isso que as atualizações parciais não são suportadas. Não use:

  • pacman -Sy pacote
  • pacman -Sy seguido por pacman -S pacote (Observe a ausência de -Su na instalação do pacote.)
  • pacman -Syuw (Observe que pacman -Syuw implica os mesmos riscos que pacman -Sy, pois atualizará o banco de dados de sincronização do pacman sem instalar os pacotes mais recentes.)

Ao renovar a base de dados de pacotes, sempre faça uma atualização completa com pacman -Syu. Observe que se pacman -Syu não executar a atualização devido a um erro, o resultado final será o mesmo da execução de pacman -Sy. Portanto, o erro deve ser resolvido e a operação de atualização concluída o mais rápido possível.

Tenha muito cuidado ao usar IgnorePkg e IgnoreGroup pelo mesmo motivo. Se o sistema possui pacotes compilados localmente (como pacotes do AUR), os usuários precisarão recompilá-los quando suas dependências receberem um soname bump.

Se um cenário de atualização parcial for criado, e os binários forem quebrados porque eles não conseguem localizar as bibliotecas às quais eles estão vinculados, não "corrija" o problema usando apenas fazendo um link simbólico. Bibliotecas recebem mudanças soname quando elas não possuem compatível com a versão anterior. Um simples pacman -Syu com um espelho sincronizado corretamente irá corrigir o problema, desde que o pacman não esteja quebrado.

O script bash checkupdates, incluído no pacote pacman-contrib, fornece uma forma segura de verificar por atualizações para pacotes instalados sem executar uma atualização do sistema ao mesmo tempo e fornece uma opção para baixar as atualizações pendentes para o cache do pacote sem tocar no banco de dados de sincronização.

Aja em alertas durante uma atualização

Ao atualizar o sistema, certifique-se de prestar atenção aos avisos de alerta fornecidos pelo pacman. Se quaisquer ações adicionais do usuário forem exigidas, assegure-se de resolvê-las imediatamente. Se um alerta do pacman estiver confuso, pesquise no fórum e notícias recentes para mais instruções detalhadas.

Lide prontamente com os novos arquivos de configuração

Quando o pacman é chamado, arquivos .pacnew e .pacsave podem ser criados. O pacman avisa quando isso acontece e usuários devem lidar com esses arquivos imediatamente. Veja a página wiki pacman/Pacnew e Pacsave para obter instruções detalhadas.

Além disso, pense em outros arquivos de configuração que você pode ter copiado ou criado. Se um pacote possuir um exemplo de configuração que você copiou para seu diretório home, verifique se um novo foi criado.

Reinicialize após atualizações

As atualizações geralmente não são aplicadas aos processos existentes. Você deve reiniciar os processos para aplicar completamente a atualização.

O pacote archlinux-contrib fornece um script chamado checkservices que executa o pacdiff para mesclar arquivos .pacnew e, em seguida, verifica os processos em execução com bibliotecas desatualizadas e pergunta ao usuário se deseja que eles sejam reiniciados.

O kernel é particularmente difícil de corrigir sem uma reinicialização. Uma reinicialização é sempre a opção mais segura, mas se isso for muito inconveniente, kernel live patching pode ser usado para aplicar atualizações sem reinicialização.

Reverta atualizações quebradas

Se uma atualização de pacote for esperada/conhecida por causar problemas, os empacotadores garantirão que o pacman exiba uma mensagem apropriada quando o pacote for atualizado. Se tiver problemas após uma atualização, verifique mais de uma vez a saída do pacman olhando em /var/log/pacman.log.

Dica: Você pode usar um visualização de log como o wat-gitAUR para pesquisar por logs do pacman.

Nesse ponto, somente depois de garantir que não há informações disponíveis através do pacman, não há notícias relevantes em https://archlinux.org/, e não há postagens no fórum sobre a atualização, considere procurar ajuda no fórum, pelo IRC, ou fazer downgrade da versão do pacote danoso.

Verifique por pacotes órfãos ou abandonados

Após a atualização, você pode agora ter pacotes que não são mais necessários ou que não estão mais nos repositórios oficiais.

Use pacman -Qtd para verificar se os pacotes foram instalados como uma dependência, mas agora, nenhum outro pacote depende deles. Se um pacote órfão ainda for necessário, é recomendável alterar o motivo de instalação para explícito. Caso contrário, se o pacote não for mais necessário, ele pode ser removido.

Além disso, alguns pacotes podem não estar nos repositórios remotos, mas eles ainda podem estar no seu sistema local. Para listar todos os pacotes externos use pacman -Qm. Observe que esta lista incluirá pacotes que foram instalados manualmente (p. ex., a partir do AUR). Para excluir pacotes que (ainda) estão disponíveis no AUR, use o script de BBS#288205 ou tente a ferramenta ancient-packagesAUR.

Use o gerenciador de pacotes para instalar softwares

O pacman faz um trabalho bem melhor do que você em manter rastro dos arquivos. Se você instalar coisas manualmente você vai, cedo ou tarde, esquecer o que você fez, esquecer onde você instalou, instalar softwares conflitantes, instalar as localizações erradas, etc.

  • Instale pacotes dos repositórios oficiais usando o método na seção Pacman#Instalando pacotes.
  • Se o programa que você deseja não estiver disponível, verifique se alguém criou um pacote no AUR. Siga o método naquele artigo para instalação.
  • Por último, se o programa que você deseja não se encontra nos repositórios oficiais ou no AUR, aprenda como criar um pacote para ele.

Para limpar arquivos instalados inadequadamente, Veja Pacman/Dicas e truques#Identificar arquivos que pertençam a nenhum pacote.

Escolha drivers código aberto

Sempre tente usar drivers de código aberto antes de recorrer a drivers proprietários. Na maioria das vezes, drivers de código aberto são mais estáveis e confiáveis do que drivers proprietários. Bugs de drivers de código aberto são corrigidos com mais facilidade e rapidez. Apesar de drivers proprietários poderem oferecer mais recursos e capacidades, isso pode vir com o custo da perda de estabilidade. Para evitar esse dilema, tente escolher componentes de hardware conhecidos para ter um suporte maduro a driver de código aberto com todos os recursos. Informações sobre hardware com drivers Linux de código aberto estão disponíveis em linux-drivers.org.

Tenha cuidado com pacotes não oficiais

Seja cauteloso ao usar pacotes do AUR ou um repositório não oficial de usuários. A maioria é fornecida pelos usuários e, portanto, pode não ter os mesmos padrões que aqueles nos repositórios oficiais. Evite auxiliares do AUR que automatizam a instalação de pacotes do AUR. Sempre verifique PKGBUILDs por sanidade e sinais de erro ou código malicioso antes de compilar a/ou instalar o pacote.

Para simplificar a manutenção, limite a quantidade de pacotes não oficiais usados. Faça verificações periódicas de quais estão em uso real e remova (ou substitua por suas contrapartes oficiais) quaisquer outros. Veja pacman/Dicas e truques#Manutenção para comandos úteis. Após a atualização do sistema, use rebuild-detector para identificar quaisquer pacotes não oficiais que precisem ser reconstruídos.

Atualize o mirrorlist

Atualize a lista de espelhos (mirrorlist) do pacman, pois a qualidade dos espelhos podem variar ao longo do tempo e alguns podem ficar inacessíveis ou sua taxa de download pode estar ruim.

Veja Espelhos para detalhes.

Limpe o sistema de arquivos

Ao procurar por arquivos para remover, é importante localizar os arquivos que mais ocupam espaço do disco. Programas que ajudam nisso são localizados em:

Cache de pacotes

Remova arquivos .pkg indesejados de /var/cache/pacman/pkg/ para liberar espaço em disco.

Veja Pacman#Limpando o cache de pacotes para mais informações.

Pacotes não usados (órfãos)

Remova pacotes não usados do sistema para liberar espaço em disco e simplificar a manutenção

Veja Pacman/Dicas e truques#Removendo pacotes não usados (órfãos) para detalhes.

Arquivos de configuração antigos

Arquivos de configuração antigos podem entrar em conflito com versões de software mais recentes ou se corromperem ao longo do tempo. Remova configurações desnecessárias periodicamente, particularmente em seu diretório home e ~/.config. Por motivos similares, tenha cuidado ao compartilhar diretórios home entre instalações.

Procure pelos seguintes diretórios:

  • ~/.config/ -- onde aplicativos armazenam suas configurações
  • ~/.cache/ -- cache de alguns programas podem aumentar de tamanho
  • ~/.local/share/ -- arquivos antigos podem estar parados lá

Veja Suporte a XDG Base Directory para mais informações.

Para manter o diretório home limpo de arquivos temporários criados no lugar errado, é uma boa ideia gerenciar uma lista de arquivos indesejados e removê-los regularmente, por exemplo, com rmshit.py.

rmlint pode ser usado para localizar e, opcionalmente, remover arquivos duplicados, arquivos vazios, diretórios vazios recursivamente e links simbólicos quebrados.

Links simbólicos quebrados

Links simbólicos antigos e quebrados podem estar soltos no seu sistema; você deve removê-los. Pode-se encontrar exemplos sobre como conseguir isso aqui e aqui. Porém, você não deve excluir cegamente todos os links simbólicos quebrados, pois alguns deles servem a um propósito [1].

Para listar rapidamente todos os links simbólicos em seu sistema, use:

# find / -xtype l -print

Então, inspecione e remova todas as entradas desnecessárias desta lista.

Dicas e truques

As seguintes dicas geralmente não são necessários, mas certos usuários podem achá-los úteis.

Use pacotes de software aprovados

O estilo rolling release do Arch pode ser benéfico para usuários que desejam tentar os últimos recursos ou obter atualizações do upstream o mais cedo possível, mas eles também podem dificultar a manutenção do sistema. Para simplificar a manutenção e melhorar a estabilidade, tente evitar softwares demasiadamente novos e instale apenas softwares aprovados e maduros. Tais pacotes têm menos chance de receber atualizações difíceis, como grandes alterações nas configurações ou remoções de recursos. Prefira um software que possua uma comunidade de desenvolvimento forte e ativa, bem como um alto número de usuários competentes, para simplificar suporte na eventualidade de ocorrer um problema.

Evite qualquer uso do repositório de teste, até mesmo pacotes individuais de teste. Esses pacotes são experimentais e não são adequados para um sistema estável. Da mesma forma, evite pacotes que são compilados diretamente dos fontes de desenvolvimento do upstream. Esses geralmente são encontrados no AUR, com nomes incluindo coisas como: "dev", "devel", "svn", "cvs", "git", etc.

Instale o pacote linux-lts

O pacote linux-lts é uma pacote alternativo de kernel do Arch e está disponível no repositório core. Essa versão de kernel em particular possui suporte de longo prazo (LTS) do upstream, incluindo correções de segurança e de bugs. É útil caso você use módulos de kernel de outra fonte, e queira garantir sua compatibilidade, ou caso você deseje um kernel fallback na eventualidade de um novo kernel causar problemas.

Para disponibilizá-lo como uma opção de boot, você precisará atualizar as configurações de seu gerenciador de boot para usar o kernel LTS e disco de ram: vmlinuz-linux-lts and initramfs-linux-lts.img.

Veja também