Je reçois des erreurs de bibliothèque partagée chaque fois que je semble installer un logiciel manuellement. Lors de l'exécution, echo $LD_LIBRARY_PATH
il apparaît comme .. rien . J'ai essayé d'ajouter /usr/local/lib
à un .conf
fichier, /etc/ld.so.conf.d
mais il semble qu'il ne s'exécute jamais.
Cela ne fonctionne pas non plus (guillemets ou autre):
LD_LIBRARY_PATH="/usr/local/lib"
export LD_LIBRARY_PATH
sudo ldconfig -v
La valeur sera définie temporairement, mais elle ne la conservera pas si je quitte la fenêtre d'un terminal. Le redémarrage ne fait rien non plus.
sudo
environment-variables
shared-library
Dissident Rage
la source
la source
~/.bashrc
Réponses:
Ajoutez ce qui suit à votre
.bashrc
:Cela vous permettra de redémarrer votre ordinateur tout en ayant ce chemin assigné.
la source
/etc/ld.so.conf.d
?Sur Red Hat Enterprise Linux (RHEL) 6,
/etc/ld.so.conf
contientinclude ld.so.conf.d/*.conf
. Sans cette ligne, les éléments/etc/ld.so.conf.d/*.conf
ne seraient jamais analysés.Pour voir quelles bibliothèques / répertoires
ldconfig
analysentla source
/etc/ld.so.conf
plus tôt car j'étais curieux de savoir ce qu'il contenait. Il avait lainclude
ligne.ldconfig -v
peut vous donner une idée de la raison pour laquelle la bibliothèque n'est pas incluse. Vous pouvez exécuterldconfig -p
pour imprimer les bibliothèques et répertoires qui se trouvent dans le fichier cache actuel.J'ai finalement résolu cela avec un alias:
Veillez à utiliser des guillemets simples, afin que les variables soient développées au moment de l'appel, et non au moment où l'alias est défini.
Cette:
(Vous pouvez voir ce que les choses se régler à avec:
sudo bash -c "echo $HOME"
)Je travaille avec des pilotes personnalisés et je dois toujours lancer mes programmes de test pour accéder au pilote. Je ne veux pas installer des versions de test des bibliothèques dans la zone système, donc j'utilise LD_LIBRARY_PATH pour configurer un répertoire de test spécifique selon les besoins. Je ne peux pas simplement définir un LD_LIBRARY_PATH fixe, je dois pouvoir le changer et conserver le paramètre actuel. Préserver PATH et HOME me donne accès à mon environnement de travail - scripts et structure de répertoires.
Cet alias évite d'avoir à accorder des autorisations de couverture dans sudoers ... et il n'y a apparemment aucune solution de contournement pour LD_LIBRARY_PATH indépendamment des paramètres sudoers de toute façon. Il ne fonctionne pas sudo à l'intérieur des scripts, mais ceux-ci peuvent être codés en dur selon les besoins.
la source