Hallo,
nach einem Reboot meines Raspis läuft auf einmal mein DBLog nicht mehr.
2017.10.21 21:37:21 1: configfile: Error: Perl module DBI is missing.
Install it on Debian with: sudo apt-get install libdbi-perl
Alle nötigen Pakete sind aber installiert und up-to-date.
Hatte auch schon alle für DBLog und mysql nötigen Pakete de- und neu installiert (siehe https://wiki.fhem.de/wiki/DbLog (https://wiki.fhem.de/wiki/DbLog)).
Problem besteht noch immer, aber ich bin ratlos.
Hat jemanden nen Tip?
Danke!
was ergibt ein sudo apt-get install libdbi-perl ?
eben nichts brauchbares:
root@Raspi1:~# apt-get install libdbi-perl
Paketlisten werden gelesen... Fertig
Abhängigkeitsbaum wird aufgebaut.
Statusinformationen werden eingelesen.... Fertig
libdbi-perl ist schon die neueste Version.
libdbi-perl wurde als manuell installiert festgelegt.
0 aktualisiert, 0 neu installiert, 0 zu entfernen und 0 nicht aktualisiert.
deswegen hatte ich es ja auch schon neu installiert
Wenn du auf der Linuxkonsole mit dem fhem-User (wenn fhem unter diesem User läuft) mal folgendes eingibst:
sudo -su fhem (zum fhem-user wechseln)
dann
perl -e 'use DBI;'
bzw.
dpkg -l |grep -i libdbi
Klappt das ohne Fehler ?
es tut was, Fehler kann ich nicht erkennen:
fhem@Raspi1:/root$ dpkg -l |grep -i libdbi
ii libdbd-mysql:armhf 0.9.0-3 armhf MySQL database server driver for libdbi
ii libdbi-perl 1.631-3+b1 armhf Perl Database Interface (DBI)
ii libdbi1:armhf 0.9.0-4 armhf DB Independent Abstraction Layer for C -- shared library
Hmm, also da bin ich auch etwas ratlos und kann mir nicht vorstellen woran das Problem liegen könnte.
Im DbLog gibt es am Anfang eine einfache Prüfung ob das Laden des DBI klappt. Die habe ich für dich in dem angehängten Testmodul ausgeschaltet.
Schau mal ob du damit erstmal weiterkommst und dein Logging läuft. (Runterladen, umbenennen und fhem restart).
Vielen Dank für die Unterstützung...
Nach dem reboot kommt:
Messages collected while initializing FHEM: configfile: Cannot load module DbLog
Ich habe dann einen reload des Moduls versucht:
Attempt to reload DBI.pm aborted.
Compilation failed in require at ./FHEM/93_DbLog.pm line 155.
BEGIN failed--compilation aborted at ./FHEM/93_DbLog.pm line 155.
Kann es sein das bei eine DBI.pm fehlt? Im Ordner /opt/fhem/FHEM finde ich zumindest keine.
Jetzt wissen wir dass die Prüfung recht hat. ;)
Ja das DBI.pm Modul muss da sein, es soll ja geladen werden. Bei mir finde ich es im Verzeichnis:
/usr/lib/x86_64-linux-gnu/perl5/5.20/Bundle/DBI.pm
/usr/lib/x86_64-linux-gnu/perl5/5.20/DBI.pm
Es war doch sicherlich nicht der erste Reboot den du gemacht hast. Irgendwas muss doch geändert worden sein seit dem letzten Restart.
Grüße
Heiko
Danke Heiko, wie es immer so ist, das Problem sitzt meistens zwischen Bildschirm und Stuhllehne...
wie sollte es anders sein: bei mir gibt es unterhalb von /usr/lib/ kein x-irgendwas Verzeichnis
An meinem System schraube ich die letzten Tage schon öfter rum, ursächlich war irgendein schiefgelaufenes update beim samba-package.
Darauf hin musste ich ein image aus dem backup restoren, da lief garnichts mehr.
Dann hatte ich das System wieder am Laufen und weiter gewerkelt, System lief aber die letzten Tage (augenscheinlich) problemlos und stabil.
Bis ich gestern dabei war das Modul https://wiki.fhem.de/wiki/XiaomiFlowerSens (https://wiki.fhem.de/wiki/XiaomiFlowerSens) einzurichten. Im Zuge dessen machte ich einen reboot und dann tauchte das DBlog-Problem auf.
Davor war ich auch schon dabei, das DbRep gemäß Wiki vorzubereiten und habe die darin genannten packages installiert bzw. auf vorhandensein geprüft. DBI ist hier ja ein Kandidat, womöglich ist hier etwas schief gelaufen, muss ich mir gleich noch einmal anschauen...
update: ach ne Denkfehler: sudo apt-get install libdbi-perl
bringt ja eben nix, ist ja da :o
2.update: habe die dbi.pm gefunden in /usr/local/lib/arm-linux-gnueabihf/perl/5.20.2/DBI.pm.
Wo genau müsste sie hin damit das DBlog-Modul sie findet und es wieder läuft?
Hallo, sorry das ich das Thema nochmal aufgreifen aber habe nach einem Stromausfall das selbe Problem.
Die DBI.pm ist in den Ordnern:
/usr/lib/x86_64-linux-gnu/perl5/5.20/Bundle/DBI.pm
/usr/lib/x86_64-linux-gnu/perl5/5.20/DBI.pm
Habe noch diesen Consolen Auszug vielleicht hilft es noch weiter.
root@raspberrypi:~# sudo -su fhem
fhem@raspberrypi:/root$ perl -e 'use DBI;'
Unrecognized character \xFD; marked by <-- HERE after ::TIEHASH <-- HERE near column 19 at /usr/lib/arm-linux-gnueabihf/perl5/5.20/DBI.pm line 1227.
Compilation failed in require at -e line 1.
BEGIN failed--compilation aborted at -e line 1.
fhem@raspberrypi:/root$ dpkg -l |grep -i libdbi
ii libdbi-perl 1.631-3+b1 armhf Perl Database Interface (DBI)
ii libdbix-contextualfetch-perl 1.03-3 all module to add context aware fetches to DBI
fhem@raspberrypi:/root$
Hoffe ihr könnt mir helfen
Du hast doch nun schon einen Thread auf, wieso noch mal den alten hier rausholen.
reinstalliere einfach das Packet noch mal, vielleicht ist was kaputt gegangen.
Ja, wie Cooltux schon sagte ... hier noch ein Tipp von mir:
sudo apt-get remove libdbi-perl
sudo apt-get install libdbi-perl
Bei der Deinstallation werden auch die DBD-Pakete vom System entfernt. Einfach wieder installieren:
sudo apt-get install [libdbd-mysql-perl] [libdbd-pg-perl] libdbd-sqlite3-perl
Du musst natürlich das DBD deines verwendeten DB-Systems verwenden.
Grüße
Heiko
Leider habe ich auf meinen Beitrag ja keine Reaktion bekommen.
Und deinstallieren klappt nicht:
root@raspberrypi:~# sudo apt-get remove libdbi-perl
Paketlisten werden gelesen... Fertig
Abhängigkeitsbaum wird aufgebaut.
Statusinformationen werden eingelesen.... Fertig
Einige Pakete konnten nicht installiert werden. Das kann bedeuten, dass
Sie eine unmögliche Situation angefordert haben oder, wenn Sie die
Unstable-Distribution verwenden, dass einige erforderliche Pakete noch
nicht erstellt wurden oder Incoming noch nicht verlassen haben.
Die folgenden Informationen helfen Ihnen vielleicht, die Situation zu lösen:
Die folgenden Pakete haben unerfüllte Abhängigkeiten:
fhem : Hängt ab von: libdbd-sqlite3-perl soll aber nicht installiert werden
E: Fehler: Unterbrechungen durch pkgProblemResolver::Resolve hervorgerufen; dies könnte durch zurückgehaltene Pakete verursacht worden sein.
root@raspberrypi:~#
Dann deinstalliere die Abhängigkeit halt vorerst auch.
libdbd-sqlite3-perl
Habe auf meinem Testsystem das eben probiert. Remove libdbi entfernt automatisch die DBD-Pakete:
heiko@fhemtest:~$ sudo apt-get remove libdbi-perl
Paketlisten werden gelesen... Fertig
Abhängigkeitsbaum wird aufgebaut.
Statusinformationen werden eingelesen.... Fertig
Die folgenden Pakete werden ENTFERNT:
libdbd-mysql-perl libdbd-pg-perl libdbd-sqlite3-perl libdbi-perl
0 aktualisiert, 0 neu installiert, 4 zu entfernen und 20 nicht aktualisiert.
Nach dieser Operation werden 3.378 kB Plattenplatz freigegeben.
Möchten Sie fortfahren? [J/n] J
(Lese Datenbank ... 98872 Dateien und Verzeichnisse sind derzeit installiert.)
Entfernen von libdbd-mysql-perl (4.041-2) ...
Entfernen von libdbd-pg-perl (3.5.3-1+b2) ...
Entfernen von libdbd-sqlite3-perl (1.54-1) ...
Entfernen von libdbi-perl (1.636-1+b1) ...
Trigger für man-db (2.7.6.1-2) werden verarbeitet ...
Und läuft auch ohne meckern durch. Danach das Install entsprechend auch fehlerfrei für alle Pakete.
Hmm...
Die Abhängigkeit kann auch nicht deinstalliet werden,
root@raspberrypi:~# apt-get remove libdbd-sqlite3-perl
Paketlisten werden gelesen... Fertig
Abhängigkeitsbaum wird aufgebaut.
Statusinformationen werden eingelesen.... Fertig
Einige Pakete konnten nicht installiert werden. Das kann bedeuten, dass
Sie eine unmögliche Situation angefordert haben oder, wenn Sie die
Unstable-Distribution verwenden, dass einige erforderliche Pakete noch
nicht erstellt wurden oder Incoming noch nicht verlassen haben.
Die folgenden Informationen helfen Ihnen vielleicht, die Situation zu lösen:
Die folgenden Pakete haben unerfüllte Abhängigkeiten:
fhem : Hängt ab von: libdbd-sqlite3-perl soll aber nicht installiert werden
E: Fehler: Unterbrechungen durch pkgProblemResolver::Resolve hervorgerufen; dies könnte durch zurückgehaltene Pakete verursacht worden sein.
Weitere Ideen?
Hast du denn keine Sicherung deines Systems die du restoren kannst ?
Nicht do aktuell, da Renovierung, Urlaub, Renovierung also ca 2 Monate aber auch viel geändert in der Zeit.
Werde mir aber jetzt nen 2. Pi3 holen und ein simultanes system aufbauen und diese synchron halten damit ich bei Problemen umschalten kann.
Nur das hilft mir grade nicht
Naja wenn du dir vorher noch die fhem.cfg, fhem.save und deine DB (ist ja bei SQLIte nur ein File) sicherst, dein System restorst und dann vor dem FHEM Start diese Files wieder auf das Systems bringst sollte es ja klappen. Dann noch ein FHEM update und bist wieder online.
Kannst du ja mal drüber schlafen und durchdenken, aber das wäre ein Weg wenn du sonst nicht vorankommst.
Ja aber laufen ja noch ein wenig mehr Sachen... Fhem.JS für fhrmSwitch, alexa, pilight, lirc,.....
Dein Problem ist doch überhaupt nicht die Deinstallation der Pakete, sondern eine vorher gescheiterte Installation eines neuen Paketes. Das merkt sich die apt-Datenbank so lange, bis das Problem behoben ist.
Zwei Möglichkeiten:
- was liefert apt-get -f install
- man kann die apt-Datenbank auch manuell bereinigen, das ist eine reine Textdatei
Hallo, das liefert ein apt-get -f install
root@raspberrypi:~# apt-get -f install
Paketlisten werden gelesen... Fertig
Abhängigkeitsbaum wird aufgebaut.
Statusinformationen werden eingelesen.... Fertig
0 aktualisiert, 0 neu installiert, 0 zu entfernen und 3 nicht aktualisiert.
root@raspberrypi:~#
Wo finde ich denn die Textdatei. Damit ich da mal weiter komme.
Verstehe nicht warum FHEM nicht auf das Modul zugreifen kann.
Da die DBI.pm in den perl5/ Ordnern vorhanden ist.
Zitat von: Tueftler1983 am 05 September 2018, 12:59:15
Da die DBI.pm in den perl5/ Ordnern vorhanden ist.
ja, sie ist vorhanden,aber sie ist funktioniert nicht. Das steht doch klipp und klar in der von Dir geposteten Fehlermeldung.
Nimm mal eine neue SD Karte und kopiere den ganzen Kram um.
Zitat von: Tueftler1983 am 03 September 2018, 22:17:59
aber habe nach einem Stromausfall das selbe Problem.
da wette ich zwei Tüten Popcorn drauf, dass der Stromausfall Deine SD Karte geschrottet hat.
Also das Kopieren bzw clonen der Karte hat funktioniert. Nur mit der geclonten besteht das selbe Problem.
Du solltest ja nur das FHEM auf eine neu aufgesetzte SD Karte kopieren. Wenn Du eine defekte perl Datei geclont hast, ist es kein Wunder, dass das Problem auch bei der neuen SD Karte besteht.
Ja aber da sollte dann doch das deinstallieren gehen oder?
Und nur FHEM müßte ich ja nicht.... Ist ja einiges mehr.
Gibt es jetzt ne Möglichkeit die Perl Module neu zu installieren? Über editieren der Textdatei oder sonst wie?
Die eigentlichen Logs, DB'S, etc werden ja auf USB geschrieben sodass die SD Karte eig von zu vielen schreib Vorgängen verschont bleibt.
Trotzdem ist Deine SD scheinbar "Schrott", nicht in der Hardware, sondern in der Software (Filesystem). Hast Du z.B. Swap eingerichtet?
Übrigens ist auch USB da keine Lösung (gibt diverse Threads dazu im Forum).
Lösung: Neue SD mit Betriebsystem aufspielen und FHEM etc. installieren.
DANN von der alten die fhem.cfg, DB-Dateien etc. kopieren (und hoffentlich glücklich sein)
Tja dann muss ich erstmal ohne Datenbank leben. Denn ich habe nicht alles mal eben neu aufgesetzt, zu viel Zusatz Programme module.
Und nen 2. pi3 auf dem ich parallel aufsetzen kann, klappt erst nächsten Monat.