Cómo exportar LD_LIBRARY_PATH a todos los usuarios y servicios del sistema


12

Quiero exportar LD_LIBRARY_PATHa los servicios del sistema y a todos los usuarios. Los servicios del sistema se ejecutan antes del inicio de sesión, por .bashrclo que no es aplicable.

¿Cómo lograr esto?


1
¿Podría explicar cuál es el problema real que está tratando de resolver?
Keith

Respuestas:


20

No necesitas hacerlo. Agregue el directorio /etc/ld.so.confo un nuevo archivo /etc/ld.so.conf.d/, según la distribución.

Después de eso, debe ejecutar (al menos en Redhat) ldconfigcomo root.

Como advertencia, debe tener cuidado con las bibliotecas que agrega a la ruta de la biblioteca compartida del sistema (a través del entorno, ld.so.conf o al poner / usr / local / lib). En particular, tenga cuidado con dos versiones diferentes de la misma biblioteca con el mismo nombre de usuario. Por ejemplo, si tiene un libfoo.0.1 (soname libfoo.0) instalado a través de dpkg / rpm / etc., No quiere un libfoo.0.2 (también soname libfoo.0) en su directorio de biblioteca personalizada.

(En realidad, no es tan fácil lograr una variable de entorno de todo el sistema. Puede obtener la mayoría de los inicios de sesión de los usuarios /etc/environment. Las secuencias de comandos dependerán de su sistema init, pero (por ejemplo) con sysv init en Debian, podría ponerlo /etc/default/rcS. Cualquier cosa salir directamente de inittab, bueno, no creo que puedas).


@bahamat, supongo que debido a una superposición de edición, terminaste sacando un párrafo de mi respuesta. Lo
agregaré de

No, simplemente lo eliminé porque "no es necesario" ya lo resume y es mucho más conciso.
bahamat

@bahamat Verifique el registro de edición, unix.stackexchange.com/posts/46620/revisions ... Creo que lo que sucedió es que ambos presionamos el enlace de edición, luego envié mi cambio (el párrafo adicional), luego usted envió su cambio (que por supuesto no incluyó el párrafo adicional). Parece que StackExchange debería detectar esto y advertir en voz alta, pero aparentemente no ...
derobert

No, simplemente eliminé explícitamente ese párrafo porque pensé que era innecesario. No hice ningún otro cambio. Nuestras ediciones estaban separadas 6m y la que vino después de mí fue 12m después. No fue una colisión.
bahamat

@bahamat Ah, dejar un comentario de edición habría aclarado la confusión ...
derobert

3

Puede agregar cada ruta en el archivo y /etc/ld.so.conf.dluego ejecutar:

ldconfig -v 

Luego cárguelos.

Al usar nuestro sitio, usted reconoce que ha leído y comprende nuestra Política de Cookies y Política de Privacidad.
Licensed under cc by-sa 3.0 with attribution required.