Hallo,
ich versuche grad das Setup von Lotus Domino auf einem SLOE4 auszuführen. (Das ist ein United Linux bzw. etwa SuSE 8.1)
mail:/ # su - notes notes@mail:~> cd /local/notesdata notes@mail:/local/notesdata> /opt/lotus/bin/http httpsetup /opt/lotus/notes/latest/linux/http: error while loading shared libraries: libpthread.so.0: cannot open shared object file: No such file or directory
Die Datei selbst ist vorhanden und hat ausreichend Rechte: mail:/ # find / -name libpthread* /lib/libpthread.so.0 mail:/ # ls -l /lib/libpthread.so.0 -rwxr-xr-x 1 root root 102052 Nov 8 13:22 /lib/libpthread.so.0
Welche Umgebungsvariable ist hier verantwortlich?
$PATH, $LD_LIBRARY_PATH, $LD_RUN_PATH hab ich schon mal in dem Startskript um ':/lib' erweitert und exportiert. Hat auch nicht geholfen. :-(
Wie finde ich heraus, wo das Programm nach der Lib sucht?
Rico
Rico Koerner wrote:
Hallo,
ich versuche grad das Setup von Lotus Domino auf einem SLOE4 auszuf?hren. (Das ist ein United Linux bzw. etwa SuSE 8.1)
Hmm, es scheint doch nicht so gleich zu sein. Ohne irgendwelche Manipulation am betreffenden Skript funktioniert es auf einem SuSE 8.1
Sonst noch herausgefunden:
notes@mail:/local/notesdata> ldd /opt/lotus/notes/latest/linux/http libinotes.so => /opt/lotus/notes/latest/linux/libinotes.so (0x40015000) libhttpsrv.so => /opt/lotus/notes/latest/linux/libhttpsrv.so (0x4025f000) libhttplib.so => /opt/lotus/notes/latest/linux/libhttplib.so (0x402b7000) libhttpsec.so => /opt/lotus/notes/latest/linux/libhttpsec.so (0x402ef000) libdmsecadm.so => /opt/lotus/notes/latest/linux/libdmsecadm.so (0x40341000) libnotes.so => /opt/lotus/notes/latest/linux/libnotes.so (0x40376000) libpthread.so.0 => /lib/libpthread.so.0 (0x4106e000) ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ libresolv.so.2 => /lib/libresolv.so.2 (0x41082000) libdl.so.2 => /lib/libdl.so.2 (0x41094000) libstdc++-libc6.1-1.so.2 => /usr/lib/libstdc++-libc6.1-1.so.2 (0x41097000) libm.so.6 => /lib/libm.so.6 (0x410df000) libc.so.6 => /lib/libc.so.6 (0x41102000) librt.so.1 => /lib/librt.so.1 (0x41220000) /lib/ld-linux.so.2 => /lib/ld-linux.so.2 (0x40000000)
Ist ja eigentlich so wie erwartet. Der Vergleich beider Systeme brachte lediglich andere Zahlen in den Klammern, sonst ist die Ausgabe gleich.
Immer noch ratlos.
Rico
Am 23. April 2003 schrieb Rico Koerner:
Der Vergleich beider Systeme brachte lediglich andere Zahlen in den Klammern, sonst ist die Ausgabe gleich.
Gibt es Unterschiede beim strace'n ?
Torsten
Torsten Werner wrote:
Gibt es Unterschiede beim strace'n ?
Das ist leider nicht so einfach herauszufinden.
Normalerweise wird das Binary von einem Skript mit: 'exec ${BIN} "$@"' aufgerufen. 'strace $Skript' geht daher nicht. :-(
Beim direkten Aufruf des Binarys als root oder notes bekomme ich keine Fehlermeldung zu libpthread zu sehen. Scheinbar ist hier alles in Ordnung.
ein strace darauf als root: --------------- # strace /opt/lotus/notes/latest/linux/http ... open("/opt/lotus/notes/latest/linux/libpthread.so.0", O_RDONLY) = -1 ENOENT (No such file or directory) open("/etc/ld.so.cache", O_RDONLY) = 4 fstat64(4, {st_mode=S_IFREG|0644, st_size=32422, ...}) = 0 mmap2(NULL, 32422, PROT_READ, MAP_PRIVATE, 4, 0) = 0x41066000 close(4) = 0 open("/lib/libpthread.so.0", O_RDONLY) = 4 read(4, "\177ELF\1\1\1\0\0\0\0\0\0\0\0\0\3\0\3\0\1\0\0\0@D\0\000"..., 1024) = 1024 fstat64(4, {st_mode=S_IFREG|0755, st_size=102052, ...}) = 0 mmap2(NULL, 81292, PROT_READ|PROT_EXEC, MAP_PRIVATE, 4, 0) = 0x4106e000 mprotect(0x4107b000, 28044, PROT_NONE) = 0 mmap2(0x4107b000, 28672, PROT_READ|PROT_WRITE, MAP_PRIVATE|MAP_FIXED, 4, 0xd) = 0x4107b000 close(4) = 0 ... write(1, "Lotus Notes: error 0x111\r\n\r\n", 28Lotus Notes: error 0x111
) = 28 munmap(0x41066000, 4096) = 0 _exit(-1) = ? -------------------
Wird mit: 'Lotus Notes: error 0x111' quitiert.
Als User notes ähnlich: open("/lib/libpthread.so.0", O_RDONLY) = 3 Lotus Notes: error 0x1007
Strace im skript eingebaut: -- exec ${BIN} "$@" ++ exec strace ${BIN} "$@"
ergibt folgendes: strace: error while loading shared libraries: libc.so.6: cannot open shared object file: No such file or directory
Jetzt fehlt schon bei strace eine Lib.
Skript-Debug-Modus entdeckt, aktiviert und festgestellt ,daß env, sort und diff am Anfang des Skriptes noch funktionieren und am Ende nicht mehr -> Fehlermeldung wie bei strace (libc fehlt)
Prophylaktisch einige env-Aufrufe eingebaut: env > /dev/null && echo ENV-OK step x || echo ENV-ERROR step x
und Übeltäter entdeckt: 'export LD_ASSUME_KERNEL=2.2.5' verursacht den Fehler. Kommentar dazu im Skript: # Set variable to work around issue with memory stack in glibc 2 # which Java cannot handle - once it can, then disable this
OK, auskommentiert - Programm startet, rennt aber in einer Endlosschleife mit ständigem 'Segmentation fault'
Wie komm ich hier weiter? Was beeinflußt diese Variable überhaupt?
Ich werd' jetzt erstmal bei Java weitersuchen, denn auf der funktionierenden Maschine ist kein Java drauf. Lotus nutzt damit das selbst mitgebrachte. Auf der anderen ist sowohl IBM als auch Sun Java2-1.3.1 drauf, wobei die Symlinks java, java2 auf Sun zeigen.
Es gibt wieder mal Konflikte zwischen den verschiedenen Versionen, aber das kommt mir schon bekannt vor.
Danke erstmal für die Denkanstöße.
Rico
lug-dd@mailman.schlittermann.de