- link estaticamente (-stático)
- usa o rpath. rpath sobrescreve o caminho de pesquisa padrão (-rpath, / srv / myapp / lib)
Eu tenho uma situação em que um grupo de desenvolvedores está tentando implantar um aplicativo binário em uma série de servidores RHEL 5.5 e CentOS 5.5. Infelizmente, o aplicativo foi desenvolvido em outra plataforma (Gentoo) e a execução resulta em um erro de dependência GLIBC:
libc.so.6: version 'GLIBC_2.7' not found (required by
/path/to/application/bin/program.app)
O RHEL / CentOS 5.x é padronizado no GLIBC 2.5 (com patches e backports, mas ainda preso em 2.5)
Eu tenho trabalhado em torno de outros requisitos de bibliotecas, copiando bibliotecas individuais e usando LD_PRELOAD
em scripts de wrapper. Minha posição é que o RHEL é feito para manter a compatibilidade binária durante toda a sua vida de suporte, e que eu não tenho boas opções para atualizar uma biblioteca tão crítica nos sistemas. O ambiente costumava ser principalmente o Gentoo, então os desenvolvedores estão acostumados a atualizar pacotes gradativamente, sem quaisquer problemas reais de dependência.
Acho que a solução adequada é recompilar para os sistemas de destino. Devido ao método de distribuição de aplicativos, isso pode não ser uma opção. Existem outras soluções ou sugestões?