Existem três maneiras de lidar com esse tipo de problema.
-
Você pode criar
nixestaticamente; então, não precisará de um vinculador dinâmico em tempo de execução e funcionará praticamente em qualquer lugar. (Isso também lida bem com problemas de compatibilidade de bibliotecas.) -
Você pode construir
nixvárias vezes, uma vez por libc alvo - realisticamente, no Linux, GNU libc e musl ( talvez dietlibc também). Isso lhe dará binários que você pode usar conforme apropriado, dependendo da libc do ambiente de destino. Eu não sei sobre o Alpine Linux, mas isso é possível, por exemplo, no Debian; você cria usando o compilador padrão para criar com o GNU libc e instala o pacotemusl-deve compila commusl-gccpara o alvo. -
Você pode especificar as dependências de qualquer binário que você faça decidir construir e instalá-las no ambiente de destino. Por exemplo, um binário baseado em musl baseado no Alpine será mais fácil de executar em um derivado Debian se você instalar o pacote
musllá.