Por que atribuir exportação LD_LIBRARY_PATH=:

Por que atribuir exportação LD_LIBRARY_PATH=:

Eu sei

export LD_LIBRARY_PATH=xxxxx

permitirá que o kernel pesquise a biblioteca de destino neste caminho.

mas por que atribuí-lo como':'

export LD_LIBRARY_PATH=:

Qual é a função? Funciona se .so estiver no caminho atual.

A propósito, quando separamos caminhos, não deveríamos usar ';' ?

ex:

export LD_LIBRARY_PATH=foo1;foo2

Responder1

LD_LIBRARY_PATH é usado pelo vinculador dinâmico e não pelo kernel. O nome do vinculador dinâmico varia, mas é algo como /lib64/ld-linux-x86-64.so.2.

Está documentado por man ld.so. No meu sistema diz

LD_LIBRARY_PATH
          A list of directories in which to search for ELF libraries at execution
          time.  The items in the list are separated by either colons or
          semicolons, and there is no support for escaping either separator.

Usar dois pontos tem a pequena vantagem de não precisar de aspas, assim ;como um caractere especial para o shell. Também concorda com o uso de dois pontos no valor da variável PATH.

Quanto ao motivo LD_LIBRARY_PATH=:, sugiro comprar um livro ou guia melhor.

informação relacionada