Software > Programmieren, Kompilieren
Nagios 3.X unter Solaris 10
vab:
--- Zitat von: escimo am 19. Juni 2008, 12:45:34 ---
--- Zitat von: vab am 19. Juni 2008, 09:46:35 ---1. LD_LIBRARY_PATH sollte nie nie nie in einer Shell gesetzt sein. Wer so was braucht, um etwas ans Laufen zu kriegen, hat etwas gundsätzlich falsch gemacht.
--- Ende Zitat ---
Also, das kommt ganz auf die Anwendung an, die man übersetzen möchte.
--- Ende Zitat ---
Leider so nicht richtig. $LD_LIBRARY_PATH ist zur Laufzeit eines Programms wichtig, nicht zum Übersetzen. Es bringt im Gegenteil meist den Build-Vorgang durcheinander. Siehe dazu ld(1), ld.so.1(1), lari(1) und den "Linker and Libraries Guide".
--- Zitat ---Es gibt Anwendungen, bei denen es in den README's ausdrücklich "gefordert" wird.
--- Ende Zitat ---
Dann sind die READMEs eben von Ahnungslosen oder Linux-Usern geschrieben worden. :-(
--- Zitat ---Zudem spricht nichts dagegen den LD-Pfad zu setzen, nur man sollte wissen was man tut.
--- Ende Zitat ---
Wissen was man tut sollte man immer. Und wer $LD_LIBRARY_PATH in einer Shell setzt, weiß das nicht. Das ist dasselbe Problem wie der Verweis auf crle. Für Details bitte Onkel Google fragen.
Gruß -- Volker
escimo:
--- Zitat von: vab am 20. Juni 2008, 12:51:28 ---Und wer $LD_LIBRARY_PATH in einer Shell setzt, weiß das nicht.
--- Ende Zitat ---
Na dann Volker, erweise uns die Ehre und korrigiere meine Fehlangabe, indem du Brenner und mir kurz erläuterst, wie man den Pfad für OpenSource-Anwendungen richtig setzen kann. ::)
Ich mache das mit der Umgebungsvariable LD_LIBRARY_PATH immer - weil ich es nicht anders kenne, bin offen für Vorschläge - und hatte zu keinem Zeitpunkt je Probleme bei irgendeiner laufenden wie auch zu übersetzenden Anwendung. ;)
Grüße
escimo
Ebbi:
Ich denke die Betonung liegt hier auf "einer" Shell statt auf "in einer Shell".
Also eben nicht nur in einer einzigen Shell setzen, sondern ins Profil eintragen. :)
Bei der Oracle Installation bin ich es gewohnt es immer nur in der Shell zu setzen, von der aus ich Oracle installiere.
escimo:
--- Zitat von: escimo am 18. Juni 2008, 11:11:57 ---Dann lohnt der Eintrag in die "~/.profile":
--- Code: ---LD_LIBRARY_PATH=<LIBDIR-1>:<LIBDIR-2>:<u.a.>
export LD_LIBRARY_PATH
--- Ende Code ---
Speichern, raus und erneut das Profil einlesen mittels
# . .profile
...
--- Ende Zitat ---
Das habe ich doch schon geschrieben. Vielleicht hat Volker das überlesen... :)
Grüße
Stephan
vab:
Na, hier wird einem ja das Wort im Munde herumgedreht... :-)
Also, nochmal ganz klar formuliert: LD_LIBRARY_PATH ist böse böse böse!
Es soll grundsätzlich nie nie nie gesetzt sein. Nicht in irgendeiner Shell, nicht in .cshrc oder .profile oder sonstwo.
Falls es irgendwo mal eine defekte kaputte fehlerhafte problematische Software gibt, die nicht korrekt mit -R gelinkt wurde, dann findet man die für diese defekte kaputte fehlerhafte problematische Software benötigten Library-Verzeichnisse heraus und schreibt diese (und nur diese) in ein Wrapper-Shell-Script, nennt das so wie das aufzurufende Programm und benennt das Programm entsprechend um.
Beispiel:
--- Code: --- # cat /loser/broken/bin/dummtool
#!/bin/sh
LD_LIBRARY_PATH=/opt/sfw/lib
export LD_LIBRARY_PATH
exec /loser/broken/bin/dummtool.bin "$*"
#
--- Ende Code ---
Das ist der *einzige* sinnvolle Verwendungszweck. (Na gut, und zum Shared Libraries debuggen...)
Gruß -- Volker
Navigation
[0] Themen-Index
[#] Nächste Seite
[*] Vorherige Sete
Zur normalen Ansicht wechseln