Come esportare LD_LIBRARY_PATH a tutti gli utenti e servizi di sistema


12

Voglio esportare LD_LIBRARY_PATHverso i servizi di sistema e tutti gli utenti. I servizi di sistema vengono eseguiti prima dell'accesso, quindi .bashrcnon è applicabile.

Come raggiungere questo obiettivo?


1
Potresti approfondire qual è il problema reale che stai cercando di risolvere?
Keith,

Risposte:


20

Non è necessario. Aggiungi la directory /etc/ld.so.confo un nuovo file /etc/ld.so.conf.d/, a seconda della distribuzione.

Successivamente, è necessario eseguire (almeno su Redhat) ldconfigcome 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.)


@bahamat Immagino che a causa di una sovrapposizione di modifica, sei finito tirando fuori un paragrafo dalla mia risposta. Lo aggiungerò di nuovo ..
derobert,

No, l'ho appena rimosso perché "non è necessario" lo riassume già ed è molto più conciso.
bahamat,

@bahamat Controlla il registro delle modifiche, unix.stackexchange.com/posts/46620/revisions ... Penso che sia successo che abbiamo entrambi premuto il link di modifica, quindi ho inviato la mia modifica (il paragrafo extra), quindi hai inviato la modifica (che ovviamente non includeva il paragrafo extra). Sembra che StackExchange dovrebbe rilevare questo e avvertire ad alta voce, ma apparentemente no ...
Derobert

No, ho rimosso esplicitamente quel paragrafo perché pensavo che non fosse necessario. Non ho apportato altre modifiche. Le nostre modifiche erano distanti 6 metri e quella successiva a me 12 metri dopo. Non è stata una collisione.
bahamat,

@bahamat Ah, lasciare un commento di modifica avrebbe chiarito la confusione ...
derobert

3

È possibile aggiungere tutti i percorsi nel file e /etc/ld.so.conf.dquindi eseguire:

ldconfig -v 

Quindi caricarli.

Utilizzando il nostro sito, riconosci di aver letto e compreso le nostre Informativa sui cookie e Informativa sulla privacy.
Licensed under cc by-sa 3.0 with attribution required.