Eu não consigo pensar em uma solução rápida antes de excluir o que você sabe que não está instalado e pesquisar manualmente o que você não consegue identificar. É um problema horrível que eu optei pelo método Etch-a-Sketch e excluí todo o meu perfil ou eliminei grandes partes dele ( .config
, .gnome-2
, etc)
A única solução de longo prazo que eu consegui pensar em fazer isso é a criação de um banco de dados online de:
- Pacotes
- Quais caminhos de configuração eles usam
Você armazenaria essas informações em um "banco de dados" JSON simples, talvez gzip e armazenasse em algum lugar on-line.
Você teria então uma ferramenta que baixou essa lista global e verificou os caminhos, procurando caminhos correspondentes na casa do usuário. Onde há correspondências, você verifica a lista de pacotes para ver se esse pacote ainda está instalado. Se não for, vai para a lista da morte.
Após essa varredura, o usuário obtém uma lista de operações de limpeza disponíveis (com detalhes sobre qual pacote o programa acha que é) e dá a opção de remover o que quiser.
Em um mundo perfeito, teríamos isso integrado diretamente no sistema de empacotamento (e temos apt-get clean-my-home
), mas acho que é um sonho. Os mantenedores teriam que fazer uma tonelada de trabalho além de exigir a reengenharia dos formatos de banco de dados de pacotes (que já são bastante parecidos).
Como não é atraente escrever isso na estrutura de cada pacote, também é necessário que haja algum tipo de interface para que pessoas comuns sugiram caminhos para pacotes. (Como é meu dia de trabalho) eu provavelmente sugeriria um aplicativo web rápido e sujo, onde as pessoas podem fazer suas sugestões e MOTUs, membros do Ubuntu, etc. podem moderar o fluxo para garantir que as pessoas não estejam sugerindo buscas potencialmente perigosas.
Como está, vai exigir uma grande quantidade de mão de obra para obter os milhares de aplicativos que gravam arquivos residenciais.
Este é um problema interessante. Isso pode me dar uma boa desculpa para jogar com o modelo cli do Quickly (Rapidamente porque sou Pythonista e também porque o empacotamento me assusta).