Problem mit net-snmpd

Binfort

Well-Known Member
Hallo,

ich habe auf einem FreeBSD 6.3 den SNMP Dienst aus den Ports installiert. Wenn ich ihn starte erhalte ich folgende Fehlermeldung:

Code:
Starting snmpd.
/libexec/ld-elf.so.1: Shared object "libperl.so" not found, required by "libnetsnmpmibs.so.30"

Und ein ldd /usr/local/sbin/snmpd bringt:

Code:
       libnetsnmpagent.so.30 => /usr/local/lib/libnetsnmpagent.so.30 (0x2807e000)
        libnetsnmpmibs.so.30 => /usr/local/lib/libnetsnmpmibs.so.30 (0x280d8000)
        libwrap.so.4 => /usr/lib/libwrap.so.4 (0x281d0000)
        libperl.so => /usr/local/lib/perl5/5.12.4/mach/CORE/libperl.so (0x281d7000)
        libcrypt.so.3 => /lib/libcrypt.so.3 (0x28300000)
        libutil.so.5 => /lib/libutil.so.5 (0x28318000)
        libnetsnmp.so.30 => /usr/local/lib/libnetsnmp.so.30 (0x28324000)
        libm.so.4 => /lib/libm.so.4 (0x283cb000)
        libkvm.so.3 => /lib/libkvm.so.3 (0x283e1000)
        libdevstat.so.5 => /lib/libdevstat.so.5 (0x283e8000)
        libcrypto.so.4 => /lib/libcrypto.so.4 (0x283ed000)
        libc.so.6 => /lib/libc.so.6 (0x284e0000)
        libperl.so => not found (0x0)

Ich habe den Port nun schon mehrfach deinstalliert, mal mit Perl und mal ohne... aber nach jeder Installation steht da ein zweites mal libperl.so als Abhängigkeit.

Kann man die nicht auch irgendwie entfernen?

Oder habt ihr einen anderen Tipp wie ich den Dienst gestartet bekomme?
 
hi,

ääähhhmm FreeBSD 6.3 is steinalt - wir wärs mit nem 8.2 ? - vielleicht klappts dann auch mit dem snmpd :)

Gruß Bär
 
In der libmap.conf kannst du das zur Not hinbiegen. Aber der Bär hat Recht, mit 8.2 fährt man besser.
 
FreeBSD sollte natürlich einmal aktualisiert werden... ich dachte nur ich könnte es noch etwas aufschieben. Aber nun soll es so sein :)

@Kamikaze: danke für den Tipp mit der libmap.conf und trotz der bevorstehenden Aktualisierung habe ich es mit umbiegen versucht.

ich hab eine /etc/libmap.conf angelegt und folgendes eingetragen:

Code:
[/usr/local/sbin/snmpd]
libperl.so       /usr/local/lib/perl5/5.12.4/mach/CORE/libperl.so

nun liefert ldd /usr/local/sbin/snmpd
Code:
        libnetsnmpagent.so.30 => /usr/local/lib/libnetsnmpagent.so.30 (0x2807e000)
        libnetsnmpmibs.so.30 => /usr/local/lib/libnetsnmpmibs.so.30 (0x280d8000)
        libwrap.so.4 => /usr/lib/libwrap.so.4 (0x281d9000)
        libperl.so => not found (0x0)
        libcrypt.so.3 => /lib/libcrypt.so.3 (0x281e0000)
        libutil.so.5 => /lib/libutil.so.5 (0x281f8000)
        libnetsnmp.so.30 => /usr/local/lib/libnetsnmp.so.30 (0x28204000)
        libm.so.4 => /lib/libm.so.4 (0x282ab000)
        libkvm.so.3 => /lib/libkvm.so.3 (0x282c1000)
        libdevstat.so.5 => /lib/libdevstat.so.5 (0x282c8000)
        libcrypto.so.4 => /lib/libcrypto.so.4 (0x282cd000)
        libc.so.6 => /lib/libc.so.6 (0x283c0000)
        libperl.so => not found (0x0)
        libperl.so => not found (0x0)

sieht aus als ob es schlimmer wird :( es drängt ja gar nicht... aber zum Verständnis: ist der Eintrag in der libmap.conf korrekt?
 
Hast du mal überprüft ob die libperl.so auch wirklich da ist?

Dein Eintrag sieht für mich eigentlich korrekt aus.

Bei mir liefert ldconfig -r | grep perl übrigens gar nichts. Ich vermute das wird in der Regel mit dlopen geöffnet.

Etwas ganz gewagtes, mach mal einen eintrag libperl.so libc.so.
 
Die libperl.so liegt in dem angezeigten Pfad.

Ein ldconfig -r | grep perl liefert auch bei mir nichts.

Eine kleine Reaktion gab es aber nachdem ich in die libmap.conf libperl.so libs.so eingetragen habe:

Code:
        libnetsnmpagent.so.30 => /usr/local/lib/libnetsnmpagent.so.30 (0x2807e000)
        libnetsnmpmibs.so.30 => /usr/local/lib/libnetsnmpmibs.so.30 (0x280d8000)
        libwrap.so.4 => /usr/lib/libwrap.so.4 (0x281d9000)
        libperl.so => /usr/lib/libc.so (0x281e0000)
        libcrypt.so.3 => /lib/libcrypt.so.3 (0x282c7000)
        libutil.so.5 => /lib/libutil.so.5 (0x282df000)
        libnetsnmp.so.30 => /usr/local/lib/libnetsnmp.so.30 (0x282eb000)
        libm.so.4 => /lib/libm.so.4 (0x28392000)
        libkvm.so.3 => /lib/libkvm.so.3 (0x283a8000)
        libdevstat.so.5 => /lib/libdevstat.so.5 (0x283af000)
        libcrypto.so.4 => /lib/libcrypto.so.4 (0x283b4000)

libperl.so und die libc.so.6 werden jetzt nicht mehr aufgelistet... der snmpd verweigert weiterhin den Dienst:

Code:
/libexec/ld-elf.so.1: /usr/local/lib/libnetsnmpagent.so.30: Undefined symbol "PL_exit_flags"

Hast du dazu vielleicht eine Idee?
 
Das heißt wohl die libperl Funktionen werden auch tatsächlich genutzt.

Mach mal den Eintrag weg und führe ldconfig -m /usr/local/lib/perl5/5.14.1/mach/CORE/ aus.

Natürlich mit dem korrekten Pfad deiner Perl Version.
 
Super, ldconfig -m /usr/local/lib/perl5/5.12.4/mach/CORE hat geholfen.

ldd /usr/local/sbin/snmpd zeigte keine Probleme und der snmpd startete sofort!

Dank dir & ein schönes Wochenende!
 
Zurück
Oben