System maintenance (Português)

From ArchWiki
The printable version is no longer supported and may have rendering errors. Please update your browser bookmarks and please use the default browser print function instead.
Status de tradução: Esse artigo é uma tradução de System maintenance. Data da última tradução: 2020-06-26. 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 correto funcionamento do Arch por um período de tempo. Manutenção periódica é uma prática a que muitos usuários se acostumam.

Verifique por erros

Falha em serviços de systemd

Verifique se algum serviço do systemd entrou em um estado de falha:

$ systemctl --failed

Veja Systemd#Analisando o estado do sistema para mais informações.

Arquivos de log

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

# journalctl -p 3 -xb

Veja systemd/Journal para mais informações.

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

Backup

Crie backups de dados importante em intervalos regulares. 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.

Os backups podem ser automatizados com systemd/Timers.

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, assim como ferramentas como etckeeper que mantêm /etc em um sistema de controle de versão (VCS); veja dotfiles#Rastreando dotfiles diretamente com Git para mais.

Lista de pacotes instalados

Mantenha uma lista de todos os pacotes instalados de forma 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 (ou até o Arch Linux Brasil) 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, é sábio esperar ter tempo suficiente para poder lidar com possíveis 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 Trusted Users 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 esse motivo que não há suporte a atualizações parciais. Não use pacman -Sy pacote ou qualquer comando equivalente, como pacman -Sy seguido por pacman -S pacote. Sempre atualize (com pacman -Syu) antes de instalar um pacote. Tenha muito cuidado ao usar IgnorePkg e IgnoreGroup pelo mesmo motivo. Se o sistema possui pacotes compilados localmente (tal como pacote do AUR), os usuários precisarão recompilá-los quando suas dependências receberem uma mudança no soname.

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.

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. Pacman fornece aviso quando isso acontece e usuários devem lidar com esses arquivos imediatamente. Veja a página wiki pacman/Pacnew e Pacsave para instruções detalhadas.

Também, 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 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, a kernel live patching pode ser usado para aplicar atualizações sem reinicialização.

Reverta atualizações quebradas

Se uma atualização de pacote é esperada/sabido causar problemas, empacotadores vão se certificar de exibir uma mensagem apropriada quando o pacote é atualizado. Se você presenciar um problema após uma atualização, confira a saída do pacman olhando no /var/log/pacman.log.

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

A esse ponto, somente após garantir que não haja informações disponíveis pelo pacman, que não há notícia relacionada no https://archlinux.org/ e que não haja tópicos no fórum sobre a atualização, considere pedir ajuda no fórum, pelo IRC ou fazendo 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 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 e remova (ou substitua por suas contrapartes oficiais) quaisquer outros. Veja pacman/Dicas e truques#Manutenção para comandos úteis.

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 conflitar com versões novas dos softwares ou se corromperem ao longo do tempo. Remova configurações desnecessárias periodicamente, em especial em sua pasta home e ~/.config. Por motivos similares, tenha cuidado ao compartilhar pastas home entre instalações.

Procure pelas seguintes pastas:

  • ~/.config/ -- onde aplicativos armazenam suas configurações
  • ~/.cache/ -- cache de alguns programas podem crescer em 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 limpe 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 alguns backports de recursos. É útil caso você prefira a estabilidade de atualizações menos frequentes de kernel 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