Maneira fácil de determinar quais funções de um pacote são usadas por um pacote dependente?

Maneira fácil de determinar quais funções de um pacote são usadas por um pacote dependente?

Estou trabalhando para reduzir um sistema à menor quantidade de arquivos, pacotes, etc. necessários para fornecer a funcionalidade que desejo.

Estou descobrindo que muitos pacotes que gostaria de manter têm dependências de pacotes que são completamente desnecessários e/ou indesejados para a distribuição que estou construindo, além do fato de serem dependências.

Eu sei que posso extrair o código-fonte de cada pacote, compilar uma lista de funções da dependência indesejada, verificar a fonte do pacote que desejo manter para saber onde essas funções são chamadas (se houver) e retirar a biblioteca para apenas essa função e possivelmente sua API, ou qualquer outra coisa necessária para entregar essa funcionalidade ao pacote que eu gostaria de manter.

Eu já fiz isso,uma vezpara ver se era possível. Isso é. No entanto, é demorado, tedioso e dificilmente candidato à automação.

Existe uma opção que não consegui encontrar dpkgou um programa que escapou das minhas habilidades de pesquisa (reconhecidamente não surpreendentes) para alcançar o efeito desejado?

Responder1

deborphantenta resolver este problema.

aptitudefaz isso para você nos bastidores, monitorando quais pacotes podem ser removidos porque foram extraídos apenas para satisfazer uma dependência de um pacote que não está mais instalado.

debfosteranuncia funcionalidade semelhante, mas não tenho experiência prática com isso.

Todos funcionam no nível do pacote e usam as dependências declaradas no dpkgbanco de dados do. Sua pergunta parece sugerir que você deseja eliminar pacotes individuais para remover código e outros recursos desnecessários. Esta é uma tarefa significativamente mais complexa e exigente; Não imagino que exista nada direto para resolver esse problema.

informação relacionada