Posso usar meu próprio ld.so.cache?

10

ldconfig tem duas opções interessantes:

-f conf
      Use conf instead of /etc/ld.so.conf.
-C cache
      Use cache instead of /etc/ld.so.cache.

Eu tentei copiar /etc/ld.so.conf para meu próprio diretório pessoal e o editei para incluir caminhos para minhas bibliotecas locais, por exemplo. /home/syockit/local/usr/lib etc. E correu

ldconfig -f /home/syockit/ld.so.conf -C /home/syockit/ld.so.cache

e, posteriormente, para confirmar que as bibliotecas estão em cache, eu corri

ldconfig -f /home/syockit/ld.so.conf -C /home/syockit/ld.so.cache -p | less

e inclui todas as minhas bibliotecas além das bibliotecas do sistema.

Agora, quero que o vinculador padrão use esses dois. Mas em man ld.so , não vejo menção de poder usar o .conf ou .cache personalizado. Então, qual é o ponto das duas opções acima de ldconfig then?

    
por syockit 15.01.2014 / 18:33

2 respostas

8

Acho que a resposta para sua pergunta é não, embora você possa realizar a mesma coisa de outras formas.

in man ld.so, I see no mention of being able to use custom .conf or .cache

Verdadeiro, mas há menção de $LD_LIBRARY_PATH ee --library-path , sendo a primeira mais útil em geral.

what's the point of the above two options of ldconfig then?

Então você pode criar um cache sem sobrescrever o sistema, e sem ter que usar o sistema confs.

    
por 15.01.2014 / 19:06
5

/etc/ld.so.conf é lido apenas por ldconfig (o programa de geração de cache), não por ld.so (o carregador dinâmico). Você pode alterar o local do arquivo de configuração se quiser gerar um cache diferente do padrão do sistema.

/etc/ld.so.cache é lido por ld.so e não é possível lê-lo de um local diferente. No entanto, pode ser útil passar um local de saída diferente para ldconfig . O caso de uso mais comum é provavelmente os ambientes chroot . Você pode usar ldconfig -r /some/root para executar ldconfig em uma raiz alternativa e colocar a saída onde quiser (dentro ou fora dessa raiz). Você precisará emitir a saída em /some/root/etc/ld.so.cache ou copiá-la mais tarde. Há outros casos de uso bastante obscuros, por exemplo, se você deseja executar ldconfig como um usuário não privilegiado (que não pode gravar em /etc/ld.so.cache ) e depois mover o arquivo para o lugar posteriormente.

    
por 16.01.2014 / 02:43