Voglio esportare LD_LIBRARY_PATH
verso i servizi di sistema e tutti gli utenti. I servizi di sistema vengono eseguiti prima dell'accesso, quindi .bashrc
non è applicabile.
Come raggiungere questo obiettivo?
Voglio esportare LD_LIBRARY_PATH
verso i servizi di sistema e tutti gli utenti. I servizi di sistema vengono eseguiti prima dell'accesso, quindi .bashrc
non è applicabile.
Come raggiungere questo obiettivo?
Risposte:
Non è necessario. Aggiungi la directory /etc/ld.so.conf
o un nuovo file /etc/ld.so.conf.d/
, a seconda della distribuzione.
Successivamente, è necessario eseguire (almeno su Redhat) ldconfig
come root.
Come avvertimento, è necessario fare attenzione a quali librerie si aggiungono al percorso di libreria condivisa del sistema (tramite l'ambiente, ld.so.conf o inserendo / usr / local / lib). In particolare, fai attenzione a due diverse versioni della stessa libreria con lo stesso soname. Ad esempio, se hai un libfoo.0.1 (soname libfoo.0) installato tramite dpkg / rpm / ecc., Non vuoi un libfoo.0.2 (anche soname libfoo.0) nella directory della tua libreria personalizzata.
(In realtà non è così facile estrarre una variabile d'ambiente a livello di sistema. Puoi ottenere la maggior parte degli accessi utente /etc/environment
. Gli script dipenderanno dal tuo sistema init, ma (per esempio) con init sysv su Debian, potresti metterlo dentro /etc/default/rcS
. scappare da Inittab, beh, non credo che tu possa farlo.)
È possibile aggiungere tutti i percorsi nel file e /etc/ld.so.conf.d
quindi eseguire:
ldconfig -v
Quindi caricarli.