Como minimizar os arquivos desnecessários instalados por dependências de pacotes?

0

Estou tentando instalar pacotes com o menor número possível de arquivos de suas dependências, já que o tamanho do sistema é importante para mim.

Por exemplo, ao querer instalar um pacote, eu poderia instalá-lo com apt-get install em outro sistema e passar sistematicamente por apt-cache depends (mostra todos os pacotes de que depende) para ele e todas as dependências até que eu tenha um (lista considerável de pacotes).

Então eu passaria por essa lista com dpkg -L (mostra todos os arquivos instalados pelo pacote) para obter uma lista (gigantesca) de arquivos que eu precisaria copiar para o meu sistema para fazer o pacote original funcionar.

Eu fiz isso com o pacote python e tive sorte depois de apenas algumas tentativas. Outros pacotes parecem ser mais complicados, infelizmente.

Deve haver uma maneira melhor de encontrar um conjunto mínimo de arquivos, o que é realmente necessário para instalar o pacote com êxito. Alguns candidatos obviamente inúteis são /usr/share/man/* , /usr/share/doc/* etc.

Existe uma maneira de descobrir qual arquivo específico de uma dependência é necessário? (por exemplo, apenas um arquivo de biblioteca de uma coleção inteira)

Existem outras maneiras de obter o conjunto mínimo de arquivos, além de selecionar alguns e tentar se ainda funciona?

A minha abordagem para reunir os arquivos necessários é a correta?

Além disso, a compilação da fonte seria uma opção? Ainda não estou completamente familiarizado com essa prática e vou procurar em seguida.

EDIT: Estou usando o XUbuntu 14.04.

    
por Minix 29.10.2014 / 15:27

1 resposta

3

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,

    
por 29.10.2014 / 15:42