Sistema inteligente de análise de pacotes para Fedora Linux com relatórios humanizados via IA
Gerenciar pacotes no Linux é chato. Você tem:
- Centenas (ou milhares) de pacotes instalados
- Atualizações pendentes que você esquece
- Pacotes órfãos ocupando espaço à toa
- Cache do DNF crescendo sem parar
- Dependências quebradas que você nem sabe que existem
E a saída do dnf é tão emocionante quanto ler um manual de geladeira.
Este projeto transforma dados brutos de pacotes em relatórios HTML bonitos e inteligentes, com análises em linguagem natural feitas pela IA do Google Gemini.
- 🔍 Analisa seu sistema Fedora coletando métricas detalhadas
- 📊 Processa informações de pacotes, updates, órfãos, cache e dependências
- 🤖 Interpreta os dados usando IA para gerar insights humanizados
- 🎨 Gera relatórios HTML lindos com recomendações práticas
- ✅ Visual: Chega de logs feios - relatórios bonitos e fáceis de ler
- ✅ Inteligente: IA explica o que cada métrica significa e o que fazer
- ✅ Prático: Comandos prontos para copiar e executar
- ✅ Automático: Agende e receba relatórios periodicamente
- ✅ Modular: Código limpo e extensível
- Sistema: Fedora Linux (ou qualquer distro com DNF)
- Python: 3.8 ou superior
- DNF: Gerenciador de pacotes instalado
- API Key: Google Gemini API (gratuita)
it clone https://github.com/montezuma-p/dnf-ai-analyzer
cd dnf-ai-analyzerpip install -r requirements.txtOu manualmente:
pip install psutil google-genaiObtenha sua chave gratuita em: https://ai.google.dev/
export GEMINI_API_KEY='sua_chave_aqui'Para tornar permanente, adicione ao ~/.bashrc ou ~/.zshrc:
echo 'export GEMINI_API_KEY="sua_chave_aqui"' >> ~/.bashrc
source ~/.bashrcEdite analyzer/config.json para customizar o diretório de saída:
{
"output_dir": "/seu/caminho/personalizado",
"analysis": {
"include_orphans": true,
"include_updates": true,
"include_cache": true,
"include_dependencies": true,
"max_packages_sample": 100
}
}python analyzer/package_analyzer.pyIsso vai:
- ✅ Analisar todos os pacotes instalados
- ✅ Verificar atualizações disponíveis
- ✅ Detectar pacotes órfãos
- ✅ Medir cache do DNF
- ✅ Verificar dependências
- ✅ Salvar JSON em
output_dir
python reporter/ai_package_reporter.pyIsso vai:
- ✅ Pegar o último JSON gerado
- ✅ Enviar para IA Gemini analisar
- ✅ Gerar HTML com insights humanizados
- ✅ Abrir automaticamente no navegador
# Analisa e gera relatório de uma vez
python analyzer/package_analyzer.py && python reporter/ai_package_reporter.pyPara receber relatórios diários:
crontab -eAdicione:
# Análise diária às 8h
0 8 * * * cd /caminho/para/packages && python analyzer/package_analyzer.py && python reporter/ai_package_reporter.py# Ver ajuda
python analyzer/package_analyzer.py --help
# Usar configuração customizada
python analyzer/package_analyzer.py --config /caminho/config.json
# Modo verboso
python analyzer/package_analyzer.py --verbosepackages/
├── analyzer/ # Coleta de métricas
│ ├── package_analyzer.py # Script principal de análise
│ ├── config.json # Configurações
│ └── modules/ # Módulos especializados
│ ├── __init__.py
│ ├── cache.py # Análise de cache DNF
│ ├── dependencies.py # Verificação de dependências
│ ├── orphans.py # Detecção de órfãos
│ ├── packages.py # Listagem de pacotes
│ └── updates.py # Checagem de updates
│
├── reporter/ # Geração de relatórios
│ ├── ai_package_reporter.py # Gerador com IA
│ └── template.html # Template HTML
│
├── requirements.txt # Dependências Python
├── README.md # Este arquivo
├── LICENSE # Licença MIT
└── .gitignore # Arquivos ignorados
Módulos independentes que coletam métricas específicas:
packages.py: Lista todos os pacotes instalados com detalhes (nome, versão, tamanho, repositório)updates.py: Verifica atualizações disponíveis e de segurançaorphans.py: Detecta pacotes órfãos e autoremovíveiscache.py: Mede tamanho do cache DNFdependencies.py: Identifica problemas de dependências
ai_package_reporter.py: Processa JSON e chama Gemini API para análise humanizadatemplate.html: Template responsivo com CSS moderno
O relatório HTML gerado contém:
"Você tem 2.450 pacotes instalados ocupando 15GB. Isso é normal para um Fedora Workstation com desenvolvimento. Existem 23 atualizações disponíveis, incluindo 5 críticas de segurança..."
- Total de pacotes
- Espaço ocupado
- Atualizações pendentes
- Pacotes órfãos
- Tamanho do cache
- Pacotes: Interpretação de quantidade e tamanho
- Updates: Urgência e tipo de atualizações
- Órfãos: Quanto espaço pode recuperar
- Cache: Se precisa limpar
- Dependências: Problemas detectados
- 🔴 Alta: "Atualize os 5 pacotes de segurança imediatamente"
- 🟡 Média: "Remova 150 pacotes órfãos e recupere 500MB"
- 🟢 Baixa: "Limpe o cache DNF quando tiver tempo"
Com comandos prontos:
sudo dnf update --security
sudo dnf autoremove
sudo dnf clean allExecute mensalmente para manter o sistema limpo e atualizado.
Identifique rapidamente atualizações de segurança pendentes.
Descubra pacotes órfãos e cache desnecessário ocupando disco.
Mantenha histórico de pacotes instalados em cada período.
Gere relatórios em servidores sem interface e envie por email/Slack.
Crie um arquivo em analyzer/modules/:
# analyzer/modules/meu_modulo.py
def collect_minha_metrica(config):
"""Coleta minha métrica personalizada"""
# Sua lógica aqui
return {
"minha_metrica": valor
}Importe em package_analyzer.py:
from modules import meu_modulo
metrics["minha_metrica"] = meu_modulo.collect_minha_metrica(config)Edite reporter/template.html para customizar aparência, cores, layout, etc.
No ai_package_reporter.py, altere a variável model:
model = "gemini-2.5-pro" # Modelo mais poderosoContribuições são muito bem-vindas!
- Fork o projeto
- Crie uma branch para sua feature (
git checkout -b feature/MinhaFeature) - Commit suas mudanças (
git commit -m 'Adiciona MinhaFeature') - Push para a branch (
git push origin feature/MinhaFeature) - Abra um Pull Request
- 🌟 Suporte para outras distros (Arch, Debian, Ubuntu)
- 📧 Envio de relatórios por email
- 📱 Versão mobile do HTML
- 🌐 Tradução para outros idiomas
- 📊 Gráficos e visualizações
- 🔔 Notificações push
- 🐳 Container Docker
Este projeto está sob a licença MIT. Veja o arquivo LICENSE para mais detalhes.
Pedro Lucas Montezuma Loureiro
- 🐙 GitHub: @montezuma-p
- 💼 LinkedIn: in/montezuma-p
- 📍 Rio de Janeiro, Brasil 🇧🇷
Confira meus outros projetos de automação Linux:
- 🖥️ monitor-linux-ia - Monitoramento de sistemas com IA
- 🧹 linux-storage-manager - Gerenciamento inteligente de storage
- 🔐 backup-universal - Sistema de backup automatizado
- 🤖 iaprojeto-setup - Scaffolding de projetos com IA
Encontrou um bug? Tem uma ideia? Precisa de ajuda?
- 🐛 Abra uma Issue
- 💡 Sugira uma Feature
- 📧 Entre em contato via LinkedIn
Se este projeto foi útil, deixe uma ⭐ no repositório!