Hallo,
ich habe zwar schon seit Jahren Linux laufen, aber jetzt habe ich ein Problem
wo ich nicht weiter komme.
ich habe mal vor ca. 1 Jahr bei meinen Rechnern Tripwire installiert, d.h.
entpackt, selber compiliert und dann eingerichtet.
Vor einigen Wochen habe ich meine libc6 auf Version 2.3.2-8 geändert,
um einige neuerer Programme installieren zu können.
Seit dem meldet mir Tripwire ständig diesen Fehler:
---
*** Processing Unix File System ***
Software interrupt forced exit: Segmentation Faul
--
Da Tripwire nicht zu überzeugen war wieder zu funktioniern,
wollte ich es einfach neu compilieren.
Doch auf einmal geht das nicht mehr.
Beim Compilieren bekomme ich folgende Fehlermeldungen: ( Auszüge)
--
../../lib/i686-pc-linux_r/libstlport_gcc.a(complex.o)(._STL::__node_alloc<true, 0>::gnu.linkonce.t.deallocate(void *, unsigned int)+0x32): In function `_STL::__node_alloc<true, 0>::deallocate(void *, unsigned int)':
: undefined reference to `pthread_mutex_lock'
--
/usr/lib/gcc-lib/i386-linux/2.95.4/libgcc.a(frame.o)(.text+0xc8d): In function `__deregister_frame_info':
: undefined reference to `pthread_mutex_unlock'
collect2: ld returned 1 exit status
gmake[4]: *** [../../bin/i686-pc-linux_r/twprint] Fehler 1
--
Es bricht also anscheinend beim Linker ld ab
Mein installierter GCC ist 2.95.4 20011002 (Debian prerelease).
Dazu meine Fragen:
1. warum will auf einmal Tripwire nicht mehr ?
2. greifen compilierte programme auf die libc6 zu ?
3. was muß ich tun, damit ich es wieder zum laufen bekomme ?
Ich habe zwar gcc-3.2 installiert, aber dies ist nur über gcc-3.2 aufrufbar.
Ich weiß, es gibt fertige Binaries, die laufen aber auch nicht, und
bei Sicherheitssoftware ( Tripwire, GPG, LoopAES) verwende ich
grundsätzlich nur selbstkompilierte Software.
Ich bin ehrlichgesagt langsam ratlos.
Hat da einer vielleicht eine Idee ?
Jogibär
Muß die libc6 zur GCC Version passen ??
Das kann ich Dir nicht beantworten ... doch Deine Erklaerung mit der libc ist schluessig und ich wuerde der gleichen Vermutung nachgehen1. warum will auf einmal Tripwire nicht mehr ?
denifiniv:2. greifen compilierte programme auf die libc6 zu ?
Code: Alles auswählen
[alex@hanson 12:13:31 alex]#> strace gcc 2>&1| grep so | grep lib
open("/lib/libdl.so.2", O_RDONLY) = 3
open("/lib/libm.so.6", O_RDONLY) = 3
open("/lib/libpthread.so.0", O_RDONLY) = 3
open("/lib/libc.so.6", O_RDONLY) = 3
open("/lib/libcrypt.so.1", O_RDONLY) = 3
open("/lib/libc.so.6", O_RDONLY) = 3
Ich kenne Tripwire nicht ... denke aber es sollte funktionieren, wenn DU sicherstellst, dass alle Teile der libc bei der Kompilation dieselbe Version haben ... ALSO: Es ist wichtig, dass sowohl die neuen Libraries, als auch die neuen Headers gezogen werden. Wenn dem so ist, weiss ich auch nicht woran es liegt3. was muß ich tun, damit ich es wieder zum laufen bekomme ?
probier mal
Scheint als hättest du ein Problem mit den pthreads...
Code: Alles auswählen
./configure --enable-pthreads --prefix=/usr
make
Danke für eure Antworten,
aber ein ./configure Sript habe ich nicht im scr Verzeichnis.
Laut Readme soll man mit make release die Binäries bauen.
Dabei sollte ich noch erwähnen, daß dabei gmake aufgerufen wird.
Bei Suse war das aber nur ein link auf make, und somit habe ich das unter Debian aus so gemacht, und es hat damals so funktioniert.
Das einzige, was mir noch einfällt wäre vielleicht mit Partimage mein
System zu sichern, komplett auf unstable zu wechseln und es dann noch
mal zu probieren.
Das Image kann ich dann jederzeit zurückspiele.
Jogibär
aber ein ./configure Sript habe ich nicht im scr Verzeichnis.
Laut Readme soll man mit make release die Binäries bauen.
Dabei sollte ich noch erwähnen, daß dabei gmake aufgerufen wird.
Bei Suse war das aber nur ein link auf make, und somit habe ich das unter Debian aus so gemacht, und es hat damals so funktioniert.
Das einzige, was mir noch einfällt wäre vielleicht mit Partimage mein
System zu sichern, komplett auf unstable zu wechseln und es dann noch
mal zu probieren.
Das Image kann ich dann jederzeit zurückspiele.
Jogibär