Kategorien
Linux

Can’t load …/RRDs.so‘ for module RRDs

Nach einem Upgrade von Ubuntu 16.04 auf 18.04 LTS bekomme ich beim Aufruf von rrdtool oder einem Perl Programm welches RRD nutzt folgende Fehlermeldung:

rrdtool: symbol lookup error: /usr/lib/x86_64-linux-gnu/libgobject-2.0.so.0: undefined symbol: g_date_copy

Can’t load ‚/usr/lib/x86_64-linux-gnu/perl5/5.26/auto/RRDs/RRDs.so‘ for module RRDs: /usr/lib/x86_64-linux-gnu/libgobject-2.0.so.0: undefined symbol: g_date_copy at /usr/lib/x86_64-linux-gnu/perl/5.26/DynaLoader.pm line 187

Das Problem hängt mit einer veralteten Version der Datei libglib-2.0.so.0 zusammen welche sich auf diesem System unter /lib/x86_64-linux-gnu befand.

„dpkg -S libglib-2.0.so“ lieferte mir das folgende Ergebnis:
libglib2.0-0:amd64: /usr/lib/x86_64-linux-gnu/libglib-2.0.so.0
libglib2.0-0:amd64: /usr/lib/x86_64-linux-gnu/libglib-2.0.so.0.5600.3

Jene Dateien im /lib/x86_64-linux-gnu waren also Altlasten – nach dem Löschen der Datei /usr/lib/x86_64-linux-gnu/libglib-2.0.so.0.5600.3 und dem Symlink /usr/lib/x86_64-linux-gnu/libglib-2.0.so.0 starteten meine Perl Programme die RRD nutzen wieder ohne Probleme!

Kategorien
Linux

Ubuntu – bindgraph – Prototype mismatch: sub Parse::Syslog::str2time

Bereits mit Ubuntu 14.04 ist dieser Fehler schon aufgetaucht und bis heute haben sie es nicht geschafft diese Kleinigkeit zu fixen – eigentlich ein Trauerspiel weil’s wirklich nur einer Kleinigkeit bedarf.

Egal, wen dieser Fehler hier plagt:

Starting DNS Statistics /usr/sbin/bindgraph.pl
Prototype mismatch: sub Parse::Syslog::str2time ($$$$$$$) vs ($$$$$$$$) at /us
Subroutine str2time redefined at /usr/share/perl5/Parse/Syslog.pm line 66.
Subroutine new redefined at /usr/share/perl5/Parse/Syslog.pm line 138.
Subroutine _next_line redefined at /usr/share/perl5/Parse/Syslog.pm line 206.
Subroutine next redefined at /usr/share/perl5/Parse/Syslog.pm line 388.
Not enough arguments for Parse::Syslog::str2time at /usr/sbin/bindgraph.pl lin
BEGIN not safe after errors–compilation aborted at /usr/sbin/bindgraph.pl lin
…fail!

Für den gibt es eine sehr einfache Abhilfe!

Einfach in der Datei /usr/sbin/bindgraph.pl folgende Einträge ändern -> Syslog zu BgSyslog.

Sehr einfach klappt das mit dem vi – vi starten und dann folgendes eingeben „:%s/Syslog/BgSyslog/g“, anschließend speichern und Dienst neu starten. Die Fehlermeldung sollte verschwunden sein und bindgraph seinen Dienst verrichten.