¿Por qué asignar export LD_LIBRARY_PATH=?

¿Por qué asignar export LD_LIBRARY_PATH=?

export LD_LIBRARY_PATH=xxxxx

permitirá que el kernel busque la biblioteca de destino en esta ruta.

pero ¿por qué asignarlo como':'

export LD_LIBRARY_PATH=:

¿Cuál es la función? Funciona si .así en la ruta actual.

Por cierto, cuando separamos caminos, ¿no deberíamos usar ';' ?

ex:

export LD_LIBRARY_PATH=foo1;foo2

Respuesta1

LD_LIBRARY_PATH lo utiliza el vinculador dinámico, no el kernel. El nombre del enlazador dinámico varía pero es algo así como /lib64/ld-linux-x86-64.so.2.

Está documentado por man ld.so. En mi sistema dice

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.

El uso de dos puntos tiene la pequeña ventaja de no necesitar comillas, ya que ;es un carácter especial del shell. También concuerda con el uso de dos puntos en el valor de la variable PATH.

En cuanto a por qué LD_LIBRARY_PATH=:, sugiero conseguir un libro o guía mejor.

información relacionada