Re: LD_LIBRARY_PATH funktioniert, ld.so.conf/ldconfig nicht
Thomas Rösch wrote:
>
> Das kann viele Gründe haben, wahrscheinlich ist es die Suchreihenfolge:
> Zuerst LD_LIBRARY_PATH und dann die Pfade in ld.so.conf.
>
> Ruf es jeweils mit strace -e open -o /tmp/logfile -f programmfile
> auf und schau dir an, was unterschiedlich ist.
>
> Thomas
>
Hallo Thomas,
ich habe nun system traces gemacht, während ich ein PHP-Skript aufrufe,
das Java nutzt. Folgende Ergebnisse habe ich bekommen.
Das Ergebnis mit
LD_LIBRARY_PATH=/usr/lib/j2se/1.4/jre/lib/i386/:/usr/lib/j2se/1.4/jre/lib/i386/server
(wo's ja funktioniert):
------------------------------------------------------------------
24980 open("/var/www/phpjava_test.php", O_RDONLY) = 4
24980 open("/etc/localtime", O_RDONLY) = 4
24980 open("/usr/lib/j2se/1.4/jre/lib/i386/libjava.so", O_RDONLY) = 4
24980 open("/usr/lib/j2se/1.4/jre/lib/i386/libjvm.so", O_RDONLY) = -1
ENOENT (No such file or directory)
24980 open("/usr/lib/j2se/1.4/jre/lib/i386/server/libjvm.so", O_RDONLY) = 4
24980 open("/usr/lib/j2se/1.4/jre/lib/i386/libverify.so", O_RDONLY) = 4
-----------------------snip----------------------------------------
Das Ergebnis mit ld.so.conf & ldconfig (wo's ja NICHT funktioniert):
--------------------------------------------------------------------
24470 open("/var/www/phpjava_test.php", O_RDONLY) = 4
24470 open("/etc/localtime", O_RDONLY) = 4
24470 open("/usr/lib/j2se/1.4/jre/lib/i386/libjava.so", O_RDONLY) = 4
24470 open("/etc/ld.so.cache", O_RDONLY) = 4
24470 open("/usr/lib/j2se/1.4/jre/lib/i386/server/libjvm.so", O_RDONLY) = 4
24470 open("/lib/tls/i686/mmx/cmov/libverify.so", O_RDONLY) = -1 ENOENT
(No such file or directory)
24470 open("/lib/tls/i686/mmx/libverify.so", O_RDONLY) = -1 ENOENT (No
such file or directory)
24470 open("/lib/tls/i686/cmov/libverify.so", O_RDONLY) = -1 ENOENT (No
such file or directory)
24470 open("/lib/tls/i686/libverify.so", O_RDONLY) = -1 ENOENT (No such
file or directory)
24470 open("/lib/tls/mmx/cmov/libverify.so", O_RDONLY) = -1 ENOENT (No
such file or directory)
------------------------------snip-------------------------------------
(Anmerkung: nach libverify wird noch in unzähligen Pfäden gesucht...)
Meine Frage: Warum zum Teufel sucht das Programm nach libjvm.so (das ist
der 6 open-Aufruf) nicht in /usr/lib/j2se/1.4/jre/lib/i386, wo es
nämlich auch liegt? Schließlich hat es dort doch schon erfolgreich
libjava.so gefunden (beim 3. open-Aufruf)??? Mag das Programm einen
Pfad, in dem es schon mal gesucht hat, nicht mehr???
Alfred
Reply to: