Comment exporter LD_LIBRARY_PATH vers tous les utilisateurs et services système


12

Je souhaite exporter LD_LIBRARY_PATHvers les services système et tous les utilisateurs. Les services système sont exécutés avant la connexion, donc .bashrcne s'applique pas.

Comment y parvenir?


1
Pourriez-vous nous expliquer quel est le problème réel que vous essayez de résoudre?
Keith

Réponses:


20

Vous n'en avez pas besoin. Ajoutez le répertoire /etc/ld.so.confou un nouveau fichier dans /etc/ld.so.conf.d/, selon la distribution.

Après cela, vous devez exécuter (au moins sur Redhat) en ldconfigtant que root.

Par prudence, vous devez faire attention aux bibliothèques que vous ajoutez au chemin d'accès à la bibliothèque partagée du système (via l'environnement, ld.so.conf, ou en insérant / usr / local / lib). En particulier, méfiez-vous de deux versions différentes de la même bibliothèque avec le même soname. Par exemple, si vous avez un libfoo.0.1 (soname libfoo.0) installé via dpkg / rpm / etc., Vous ne voulez pas un libfoo.0.2 (également soname libfoo.0) dans votre répertoire de bibliothèque personnalisé.

(En fait, il n'est pas si facile d'extraire une variable d'environnement à l'échelle du système. Vous pouvez obtenir la plupart des connexions utilisateur avec /etc/environment. Les scripts dépendront de votre système init, mais (par exemple) avec sysv init sur Debian, vous pouvez l'intégrer /etc/default/rcS. Tout courir directement hors de inittab, eh bien, je ne pense pas que vous puissiez.)


@bahamat Je suppose qu'en raison d'un chevauchement d'édition, vous avez fini par retirer un paragraphe de ma réponse. Je vais l'ajouter de nouveau ..
derobert

Non, je viens de le supprimer parce que "vous n'avez pas besoin de" le résume déjà et c'est beaucoup plus concis.
bahamat

@bahamat Vérifiez le journal d'édition, unix.stackexchange.com/posts/46620/revisions ... Je pense que ce qui s'est passé, c'est que nous avons tous les deux cliqué sur le lien d'édition, puis j'ai soumis ma modification (le paragraphe supplémentaire), puis vous avez soumis votre modification (qui bien sûr ne comprenait pas le paragraphe supplémentaire). On dirait que StackExchange devrait détecter cela et avertir fort, mais apparemment pas ...
derobert

Non, je viens de supprimer explicitement ce paragraphe parce que je pensais qu'il n'était pas nécessaire. Je n'ai fait aucun autre changement. Nos modifications étaient espacées de 6 m et celle qui est venue après moi était de 12 m plus tard. Ce n'était pas une collision.
bahamat

@bahamat Ah, laisser un commentaire d'édition aurait dissipé la confusion ...
derobert

3

Vous pouvez ajouter chaque chemin dans le fichier /etc/ld.so.conf.dpuis exécuter:

ldconfig -v 

Chargez-les ensuite.

En utilisant notre site, vous reconnaissez avoir lu et compris notre politique liée aux cookies et notre politique de confidentialité.
Licensed under cc by-sa 3.0 with attribution required.