Não é fácil. Os arquivos ld.so.conf têm um formato muito simples: são apenas uma lista de caminhos.
Você poderia fazer algo construindo seu executável com um interpretador diferente ; o normal seria algo como /lib64/ld-linux-x86-64.so.2 1 e é o que realmente é responsável por realizar a vinculação dinâmica. Portanto, o vinculador dinâmico personalizado pode procurar em ld.so.conf diferente ou fazer qualquer coisa. Mas isso soa muito pior do que o rpath!
Uma solução muito mais simples é um wrapper. Instale o binário como program.real ou, melhor ainda, em /usr/local/lib/ em algum lugar (isto é, não em $PATH ). Em seguida, coloque um script de shell simples como /usr/local/bin/program :
#!/bin/sh
export LD_LIBRARY_PATH=/path/to/libs
exec /usr/local/lib/program/program.real
Agora, a localização da sua biblioteca é independente da compilação, mas o programa de chamada não precisa de conhecimento dela.
1 : maneira rápida de encontrar o que normalmente está no seu sistema: readelf /bin/bash -p .interp . Tente alguns executáveis diferentes; você encontrará pelo menos programas de 32 e 64 bits usando um diferente.