Estou trabalhando com hardware embarcado muito restrito, onde não posso ter muitos pacotes instalados; no entanto, preciso do Python3.10, que construí a partir do código-fonte (meu apt oferece apenas Python3.7).
Ao fazer isso, instalei o build-essential zlib1g-dev libncurses5-dev libgdbm-dev libnss3-dev libssl-dev libreadline-dev libffi-dev libsqlite3-dev wget libbz2-dev
, e dezenas de dependências adicionais para esses pacotes. Como resultado, meu sistema operacional é muito grande para carregar no hardware incorporado.
apt-get purge
Depois que o Python3.10 estiver instalado, os pacotes acima e suas dependências estão corretos ? Testei programas Python muito básicos depois de fazer isso e tudo parece bem, mas isso poderia causar problemas no futuro?
Você pode subdividir as dependências de build em vários grupos:
Os dois primeiros você pode remover após a conclusão da construção. A terceira lista normalmente são bibliotecas compartilhadas, mas também pode haver arquivos de suporte. Esta é uma lista muito mais difícil de determinar.
Você pode remover as bibliotecas de desenvolvimento e, em seguida, escolher o que o autoremove deseja remover para descobrir quantas delas são bibliotecas compartilhadas críticas.
Ou você pode escolher seu destino construído e executar ldd nos executáveis e bibliotecas e descobrir quais são os pacotes necessários para as bibliotecas compartilhadas encontradas. Observe que nem todos eles serão encontrados na lista de remoção automática sugerida acima! Além disso, isso não encontrará bibliotecas detectadas em tempo de execução e carregadas dinamicamente, em vez de realmente vinculadas em tempo de compilação.
Escolher pacotes com os arquivos de suporte necessários pode ser ainda mais difícil, sem uma análise cuidadosa. Eu odiaria removê-los apenas para encontrar coisas que travaram sem eles, supondo que você consiga atingir esse caminho de código enquanto estiver testando, e não na produção!
Em suma, não existe uma resposta fácil e limpa. É necessária uma análise cuidadosa, um bom conhecimento de todos os seus aplicativos e talvez ainda algumas tentativas e erros.