====== Guia de Manutenção, Limpeza e Automação de Pacotes no Arch Linux ======
Este guia reúne comandos essenciais para verificar atualizações no AUR, remover pacotes órfãos, limpar o cache do sistema e automatizar a manutenção de forma segura.
===== 1. Verificar Atualizações Disponíveis no AUR =====
Para listar apenas os pacotes do AUR que possuem atualizações pendentes:
* **Utilizando o Yay:**
yay -Qua
* **Utilizando o Paru:**
paru -Qua
===== 2. Remoção de Pacotes Órfãos =====
Pacotes órfãos são dependências que ficaram esquecidas no sistema após a remoção do programa principal.
==== Via AUR Helpers ====
Remove os órfãos tanto dos repositórios oficiais quanto do AUR:
# Se você usa yay
yay -Yc
# Se você usa paru
paru -c
==== Via Pacman (Nativo) ====
O comando abaixo localiza e remove todos os órfãos do sistema:
sudo pacman -Rns $(pacman -Qdtq)
^ Parâmetro ^ Função do comando pacman -Qdtq ^
| **-Q** | Consulta (Query) a base de dados de pacotes instalados. |
| **-d** | Filtra apenas pacotes instalados como dependências. |
| **-t** | Filtra pacotes que não são exigidos por nenhum outro programa atual. |
| **-q** | Modo silencioso (quiet), exibindo apenas os nomes dos pacotes (ideal para scripts). |
===== 3. Limpeza do Cache do AUR =====
==== Utilizando o Pikaur ====
* **Limpeza Completa (Cache + Compilações):** Deleta instaladores e pastas temporárias.
pikaur -Scc
* **Limpar Apenas Arquivos de Compilação (Build Files):** Mantém os instaladores ''.pkg.tar.zst'', mas limpa as pastas de extração.
pikaur -P --clean
==== Utilizando o Yay ou Paru ====
yay -Scc
# ou
paru -Scc
===== 4. Limpeza do Cache do Pacman =====
==== Limpeza Total ====
Apaga **todos** os pacotes baixados.
sudo pacman -Scc
==== Limpeza Parcial Segura (Recomendado) ====
Utiliza a ferramenta ''paccache'' (do pacote ''pacman-contrib'') para manter cópias de segurança locais.
* **Manter apenas as 2 últimas versões** de cada pacote (para caso de downgrade):
sudo paccache -r
* **Remover cache de programas já desinstalados**:
sudo paccache -rk1
===== 5. Automação de Limpeza com Systemd =====
O Arch Linux fornece um timer nativo através do pacote ''pacman-contrib'' para limpar o cache do pacman automaticamente todas as semanas, mantendo por padrão as 3 últimas versões de cada pacote.
Para ativar e iniciar o timer do sistema, execute:
sudo systemctl enable paccache.timer
sudo systemctl start paccache.timer
Para verificar se o agendamento está funcionando corretamente:
systemctl status paccache.timer
===== 6. Solução de Problemas (Troubleshooting) =====
Ao tentar remover pacotes órfãos com ''pacman -Rns $(pacman -Qdtq)'', você pode se deparar com erros de **"falha na preparação da transação (não foi possível satisfazer as dependências)"**.
==== Como resolver conflitos de órfãos: ====
1. **Identifique o bloqueio**: O terminal exibirá qual pacote instalado ainda depende do órfão que você está tentando remover.
2. **Tornar o pacote explícito**: Se o "órfão" na verdade é um programa que você quer continuar usando de forma independente, mude o status dele para "explicitamente instalado":
sudo pacman -D --asexplicit nome_do_pacote
3. **Remover em cascata**: Se você deseja apagar o órfão e também o programa que depende dele, adicione-os juntos no comando de remoção:
sudo pacman -Rns nome_do_orfao nome_do_outro_pacote
===== 7. Nota de Segurança para Ambientes de Produção =====
**AVISO CRÍTICO:** Evite o uso de ''pacman -Scc'' ou ''paccache -rkv0'' em servidores ou ambientes de produção estáveis.
* **Risco de Quebra do Sistema:** O Arch Linux é uma distribuição //rolling release//. Se uma atualização de sistema quebrar um serviço essencial (como o servidor web ou o kernel), o cache local do pacman é a sua **única salvaguarda rápida** para realizar um ''downgrade'' imediato para a versão anterior funcional.
* **Dependência da Rede/Archive:** Sem o cache local, você será obrigado a buscar o pacote antigo no //Arch Linux Archive// externo, aumentando o tempo de inatividade (downtime) do ambiente de produção.
* **Boas Práticas:** Em servidores, mantenha o ''paccache.timer'' ativo ou configure-o para manter ao menos as **2 últimas versões** estáveis armazenadas em disco.