Acho que remover arquivos individuais é uma abordagem incorreta. Você nunca terá certeza sobre o que está potencialmente quebrando.
Talvez você remova o arquivo A e teste a funcionalidade F1 do pacote B, e tudo parece funcionar. Mas isso pode ser porque F1 não exigiu A. Uma semana depois de tentar usar a funcionalidade F2 e falhar miseravelmente porque requer o arquivo A, mas será muito difícil diagnosticar ou solucionar problemas.
Em teoria, os empacotadores já tentam minimizar dependências e arquivos.
Por outro lado, a compilação do software pode ser uma abordagem melhor. Muitos pacotes oferecem a possibilidade de criar versões estáticas (não dependendo de bibliotecas externas) e, em seguida, você pode obter uma pegada menor.
Mesmo com este método, cada caso será diferente. Também é muito demorado.
Meu conselho seria usar ferramentas como deborphan
(ou o equivalente em sua distro). Isso listará os pacotes sem dependências, que podem ser removidos com segurança. É um processo iterativo porque a cada remoção você pode encontrar mais pacotes que podem ser removidos.
Teste também deborphan -a
, que listará todos os candidatos, não apenas bibliotecas e dependências.
Espero que isso ajude,