Como redistribuir programas binários construídos no Ubuntu moderno para que eles possam ser executados em qualquer sistema Linux mais antigo?

3

Descobri que, se eu construir qualquer binário no Ubuntu 10.10, ele não será executado em alguns Linux mais antigos. É porque o Ubuntu usa uma biblioteca C muito nova, chamada EGLIBC. A maioria dos sistemas Linux de desktop usa o GLIBC.

Eu gostaria de saber se existe algum método padrão para redistribuir programas binários construídos em um Ubuntu moderno para que eles possam ser executados em qualquer sistema Linux mais antigo?

Como encontrar todas as dependências necessárias (versão glibc, bibliotecas dinâmicas)?

    
por psihodelia 12.01.2011 / 15:07

1 resposta

3

Se você insistir em fazer isso, não poderá usar nenhuma biblioteca compartilhada; você deve linkar com -static.

Para descobrir para o que se vincula a partir da fonte, veja o comando linker para opções -lfoo. Para inspecionar um binário, execute o ldd nele.

    
por psusi 12.01.2011 / 15:22