Où définir LD_LIBRARY_PATH sur Solaris?
Quel est le meilleur endroit pour mettre en place une application spécifique LD_LIBRARY_PATH
variable sur Solaris?
Comment
LD_LIBRARY_PATH
de travail variable?
Nous avons actuellement défini dans .kshrc
mais différentes applications ont besoin de différentes versions de messagerie cadre, mais ces applications s'exécutent sous le même usage et donc ils ont besoin de différentes LD_LIBRARY_PATH
donc, à votre avis quel est le meilleur endroit pour mettre cette variable?
Fondamentalement, je suis en train d'essayer de comprendre comment faire de cette variable de chemin d'accès de la partie de l'application à la place de l'environnement de l'utilisateur spécifique.
source d'informationauteur Ville M
Vous devez vous connecter pour publier un commentaire.
Généralement, je voudrais juste avoir un script shell qui lance l'application. Dans le script shell, je mettrais LD_LIBRARY_PATH pour ce que j'en ai besoin pour être pour cette application, puis faites-le script de démarrer l'application. Faire de cette façon, en conséquence, le chemin uniquement pour cette application.
Vous pouvez trouver une description formelle de
LD_LIBRARY_PATH
sur la page de man pour "ld..1", c'est à dire exécuter "l'homme ld..1". Il décrit également d'autres variables qui sont honorés par le moteur d'exécution de l'éditeur de liens.En plus de
LD_LIBRARY_PATH
les exécutables et les bibliothèques partagées peuvent également avoir un construit-dans le chemin de recherche pour les bibliothèques. Si vous exécutez une application qui vous ont lié à vous-même, vous pouvez utiliser le ld de l'option-R pour régler le construit dans le chemin d'accès (à la fois Sun CC et gcc ont des options pour effectuer la même chose). Ceci peut vous permettre d'éviter d'utiliserLD_LIBRARY_PATH
en premier lieu.Vladr, alanc est correct.
Il n'est pas recommandé de mettre LD_LIBRARY_PATH sur Solaris. À tous.
Si vous avez besoin de faire cuire un spécifique runpath dans votre bibliothèque ou exécutable,
ensuite, vous devez utiliser l'option-R du pavillon de l'éditeur de liens. Si le bâtiment avec gcc, alors
utilisez -Wl,Rpath (je pense).
Si vous avez besoin de faire cela pour une étape de post-construction (par exemple, parce que vous ne l'avez pas
source de recompiler), puis elfedit(1) vous aidera beaucoup. Il est documenté
dans la page du manuel, et aussi dans l'éditeur de liens+Bibliothèques de Guide à http://docs.oracle.com/cd/E26502_01/html/E26507/index.html
La crle réponse est plus correct. Sur Solaris,
LD_LIBRARY_PATH
ne doit pas être utilisé. Utilisation crle à la place. Pour afficher les chemins actuels, il suffit d'exécuter "crle" par lui-même. Pour mettre à jour la liste, utilisezcrle -u -l /path/to/your/lib/directory
. Le-u
est nécessaire pour écrire les modifications à la configuration du système, sinon le changement ne sera que temporaire. Voir la page de man pour plus d'options.Viens de trouver un cas qui mondiale LD_LIBRARY_PATH ne prend pas effet, j'ai dû l'envelopper d'un script et de définir LD_LIBRARY_PATH avant l'application.
crle est une bonne solution globale si vous avez installé un grand nombre de bibliothèques dans /opt/csw/lib, via pkgutil de blastwave.
Vous pouvez vérifier votre .de profil ou de .de profil.fichier de l'utilisateur.Il y aura une commenté entrée .Il n'est pas recommandé pour être utilisé car il est cassé.Vous devez construire les binaires par la transmission de valeurs aux drapeaux plutôt que d'utiliser la variable.
Vous pouvez utiliser le crle commande:
crle -l /chemin/vers/votre/lib/fichier