Umstieg von Ubuntu 18.04.5 LTS auf Raspi mit Buster klappt nicht

Begonnen von Micky79, 08 Dezember 2021, 12:29:23

Vorheriges Thema - Nächstes Thema

Micky79

Hallo an Alle,

ich habe bisher FHEM in einer virtuellen Machine mit Ubuntu 18.04.5 LTS laufen. Hier läuft auch alles. Nun wollte ich diese Fhem Instanz auf einen Raspi 4 umziehen.
Hier läuft Debian Buster, das offizielle von der Raspberry Internetseite. Beim dem Pi habe ich alles vorbereitet und das Fhem 6.0 Paket mittel dpkg installiert.
Das nackte neue FHEM System kann ich dann auch im Browser aufrufen.

Sobald ich dann das Backup einspiele und FHEM Neustarte komme ich nicht mehr auf das Webinterface. Seite kann nicht gefunden werden. Ein prägnanter Fehler welcher im LOG auftritt ist folgender:
2021.12.08 12:09:43 1: reload: Error:Modul 88_HMCCU deactivated:
Can't locate RPC/XML/Client.pm in @INC (you may need to install the RPC::XML::Client module) (@INC contains: . /etc/perl /usr/local/lib/arm-linux-gnueabihf/perl/5.28.1 /usr/local/share/perl/5.28.1 /usr/lib/arm-linux-gnueabihf/perl5/5.28 /usr/share/perl5 /usr/lib/arm-linux-gnueabihf/perl/5.28 /usr/share/perl/5.28 /usr/local/lib/site_perl /usr/lib/arm-linux-gnueabihf/perl-base ./FHEM ./FHEM/lib) at ./FHEM/88_HMCCU.pm line 38, <$fh> line 1589.
BEGIN failed--compilation aborted at ./FHEM/88_HMCCU.pm line 38, <$fh> line 1589.

Und FHEM startet nach einiger Zeit immer wieder neu.

Daraufhin habe ich die Homematic Module alle im Ordner /opt/fhem/FHEM gelöscht. Testweise. FHEM startet dann nach Log durch, allerdings komme ich nicht aufs Webinterface.

Ich habe in der laufenden Instanz per allowed den Zugriff auf FHEM beschränkt. Ich benötige also Benutzername und Passwort. Aber soweit komme ich im Browser gar nicht. Es ist so als würde FHEM gar nicht laufen.

Bezüglich des HM Moduls: Auf der laufenden FHEM Instanz ist Perl 5.26 installiert, auf dem Raspi 5.28.

Ich dachte eigentlich ich könnte mittels Backup (aus FHEM heraus mit dem Befehl backup) FHEM einfach umziehen.
Bin jetzt echt ratlos.
Für Hilfe wäre ich sehr dankbar.

Micky

Beta-User

Also....

a) Wieso Buster? Gleich auf die aktuellste Version (bullseye), bitte!
b) Wieso fhem 6.0? Aktuell ist 6.1... (wenn dpkg, ginge auch gleich "nightly"). Würde aber zur Vermeidung von c) lieber die "easy-way"-Variante empfehlen...

c) wenn dpkg: Fehlende Abhängigkeiten gefixt? (siehe Anleitung bei fhem/debian)

d) Wenn FHEM scheinbar endlos braucht, um sichtbar zu werden, könnte initialUsbCheck noch aktiv sein => deaktivieren.
Sonst: https://wiki.fhem.de/wiki/FHEM_startet_nicht_-_Tipps_zur_Fehlersuche

e) Module können von externen Perl-Modulen abhängig sein. Da mußt du (nach einer sauberen Grundinstallation) selbst schauen, was noch fehlt. In der Regel gibt die jeweilige commandref Auskunft, was und wie am besten...
Server: HP-elitedesk@Debian 12, aktuelles FHEM@ConfigDB | CUL_HM (VCCU) | MQTT2: MiLight@ESP-GW, BT@OpenMQTTGw | MySensors: seriell, v.a. 2.3.1@RS485 | ZWave | ZigBee@deCONZ | SIGNALduino | MapleCUN | RHASSPY
svn: u.a MySensors, Weekday-&RandomTimer, Twilight,  div. attrTemplate-files

Otto123

#2
Hallo Micky,

mit ziemlicher Sicherheit fehlen Dir Perl Module und Du hast keine gute Doku zu Deiner Installation?

Ich kann Dir ein paar Zeilen Script vorschlagen um fehlende Modul zu ermitteln:
Nimm Deinen Pi mit neu installiertem FHEM (nimm bitte den easy way von debian.fhem.de)

Dann bereitestet Du dieses System auf die Abfrage vor:
Mein Bash Script "bedient" FHEM von der Kommandozeile, wenn Du das nicht willst kannst Du auch alles in der FHEM Oberfläche machen.
Die fehlenden Pakete werden mit dem installer Module von FHEM ermittelt.
Ich mag allerdings die Installation mit cpan nicht, deswegen ermittelt meine Methode am Ende gleich die debian Pakete zur Installation ;)

# System aufrüsten
sudo apt install apt-file libperl-prereqscanner-notquitelite-perl
sudo apt-file update

wget -O fhemcl.sh https://raw.githubusercontent.com/heinz-otto/fhemcl/master/fhemcl.sh
chmod +x fhemcl.sh

# Definition zum Testen erstellen
cat <<EOF | ./fhemcl.sh 8083
attr initialUsbCheck disable 1
define installer installer
attr installer installerMode developer
save
EOF



Dann stellst Du nur deine alte fhem.cfg zur Verfügung, Beispiel:
# Zu prüfende config Datei holen
scp user@host:/opt/fhem/fhem.cfg .
ref='/home/pi/fhem.cfg'


Dann startest Du eine Abfrage (dauert etwas)
# Abfrage starten
s=$(./fhemcl.sh 8083 "get installer checkPrereqs $ref"|grep -oE 'installPerl.*&fwcsrf'|grep -oE '\s[a-z,A-Z,:]+\s')
packages=$(echo $s|tr " " "\n"|sed 's/$/./;s/^/\//'|apt-file search -l -f -)
echo $packages


Am Ende sollte er Dir die Pakete zur Installation auswerfen :) wenn mit Erfolg dann
sudo apt install $packages

Gruß Otto
Viele Grüße aus Leipzig  ⇉  nächster Stammtisch an der Lindennaundorfer Mühle
RaspberryPi B B+ B2 B3 B3+ ZeroW,HMLAN,HMUART,Homematic,Fritz!Box 7590,WRT3200ACS-OpenWrt,Sonos,VU+,Arduino nano,ESP8266,MQTT,Zigbee,deconz

Wernieman

Finde Dein Script toll .... und auch den Ansatz ... nur verstehe ich es irgendwie nicht. Habe es jetzt schon 3 mal durchgesehen ... kannst Du es bitte grob umschreiben?

Gerne auch in einem neuen Thread ... büdde ..
- Bitte um Input für Output
- When there is a Shell, there is a Way
- Wann war Dein letztes Backup?

Wie man Fragen stellt: https://tty1.net/smart-questions_de.html

Otto123

#4
Hallo Werner,

ich nehme an Du meinst die konkrete Suche, in $ref steht der lokale Speicherort der zu untersuchenden config Datei:
./fhemcl.sh 8083 "get installer checkPrereqs $ref" #liefert die Ausgabe vom Installermodul, das ist eine HTML Datei
|grep -oE 'installPerl.*&fwcsrf'                   #filtert die Modulnamen plus "davor" und "danach" in der Form -> installPerl CpanModulname &fwcsrf
|grep -oE '\s[a-z,A-Z,:]+\s'                       #filtert die nur die CPAN Modulnamen   

Ergebnis ist eine Leerzeichengetrennte Liste von CPAN Modulnamen.
echo $s|tr " " "\n"         #macht aus Leerzeichengetrennt eine Zeilengetrennte Liste
|sed 's/$/./;s/^/\//'       #Der Modulstring muss zur Suche vorn mit "/" und hinten mit "." ergänzt werden (Form zur Suche "/usr/share/man/man3/IO::File.3perl.gz")
|apt-file search -l -f -    #Suche der debian Pakete mit apt-file
               

Gruß Otto
Viele Grüße aus Leipzig  ⇉  nächster Stammtisch an der Lindennaundorfer Mühle
RaspberryPi B B+ B2 B3 B3+ ZeroW,HMLAN,HMUART,Homematic,Fritz!Box 7590,WRT3200ACS-OpenWrt,Sonos,VU+,Arduino nano,ESP8266,MQTT,Zigbee,deconz

Wernieman

O.K. .... d.h. wenn FHEM läuft, kann man die Fehlenden Libs übers Installermodul rausfinden. Dachte, Du wertest die Logausgabe aus. Da stehen beim Booten bekanntlich die fehlenden Libs auch drin ...

Danke für das bereitwillige Erklähren
- Bitte um Input für Output
- When there is a Shell, there is a Way
- Wann war Dein letztes Backup?

Wie man Fragen stellt: https://tty1.net/smart-questions_de.html

Otto123

Naja meine Idee/Trick ist:
ein leeres FHEM, bereit das restore vom alten FHEM aufzunehmen.
Aber - nicht erst in eine / viele Blockaden laufen sondern gleich mit Hilfe des Installermoduls die alte config analysieren!
Dann nachinstallieren und restore machen: stressfrei fertig :)
Viele Grüße aus Leipzig  ⇉  nächster Stammtisch an der Lindennaundorfer Mühle
RaspberryPi B B+ B2 B3 B3+ ZeroW,HMLAN,HMUART,Homematic,Fritz!Box 7590,WRT3200ACS-OpenWrt,Sonos,VU+,Arduino nano,ESP8266,MQTT,Zigbee,deconz

Wernieman

D.h. das Script "pustet" gleich die Config rein? Ist natürlich auch ein Weg ...
- Bitte um Input für Output
- When there is a Shell, there is a Way
- Wann war Dein letztes Backup?

Wie man Fragen stellt: https://tty1.net/smart-questions_de.html

passibe

Meines Erachtens braucht man dafür kein Skript. Das fehlende Modul steht doch da:
Zitat von: Micky79 am 08 Dezember 2021, 12:29:23
you may need to install the RPC::XML::Client module

Müsste mit einem einfachen
sudo apt-get update && sudo apt-get install librpc-xml-perl
getan sein.

Btw: Wenn man "RPC::XML::Client debian" googelt kommt man normalerweise auf den richtigen Paketnamen. Dann muss man sich auch nicht mit CPAN o.ä. rumschlagen.

Edit: Das natürlich jetzt unabhängig von der Tatsache, dass Buster usw. grundsätzlich keine so gute Idee ist ...

Wernieman

- Bitte um Input für Output
- When there is a Shell, there is a Way
- Wann war Dein letztes Backup?

Wie man Fragen stellt: https://tty1.net/smart-questions_de.html

passibe

Ja ok. Aber seine Frage bezog sich jetzt ja konkret auf diese eine Fehlermeldung im Log und dieses eine fehlende Modul.
Wenn noch mehr fehlen, wird das ja wohl schon noch auffallen:D

Otto123

Mickys Frage war:
Zitatich habe bisher FHEM in einer virtuellen Machine mit Ubuntu 18.04.5 LTS laufen. Hier läuft auch alles. Nun wollte ich diese Fhem Instanz auf einen Raspi 4 umziehen.
...
Bin jetzt echt ratlos.
Viele Grüße aus Leipzig  ⇉  nächster Stammtisch an der Lindennaundorfer Mühle
RaspberryPi B B+ B2 B3 B3+ ZeroW,HMLAN,HMUART,Homematic,Fritz!Box 7590,WRT3200ACS-OpenWrt,Sonos,VU+,Arduino nano,ESP8266,MQTT,Zigbee,deconz

Micky79

Danke an alle.

Es fehlte tatsächlich nur ein Paket. Das librpc-xml-perl Paket.
Für meine MQTT Devices musste ich auch noch einige Pakete installieren.

Jetzt schein alles normal zu laufen.

Nochmals Danke.


bertl

Hallo Otto,

ich wollte dein Scrip ausprobieren, da ich vor habe von aktuell "stretch" auf "bullseye" umzusteigen (auf neuer SD-Karte aufsetzen, und wenn alles funktioniert austauschen).
Hardware: RaspberryPi 3 Model B.

Kann es sein, dass sich die "libperl-prereqscanner-notquitelite-perl" nicht unter "strecht" installieren lässt, da ich folgenden Fehler bekomme?

sudo apt update

OK:1 http://repo.mosquitto.org/debian stretch InRelease
OK:2 http://raspbian.raspberrypi.org/raspbian stretch InRelease
OK:3 http://archive.raspberrypi.org/debian stretch InRelease
Paketlisten werden gelesen... Fertig
Abhängigkeitsbaum wird aufgebaut.
Statusinformationen werden eingelesen.... Fertig
Alle Pakete sind aktuell.

sudo apt install libperl-prereqscanner-notquitelite-perl

Paketlisten werden gelesen... Fertig
Abhängigkeitsbaum wird aufgebaut.
Statusinformationen werden eingelesen.... Fertig
E: Paket libperl-prereqscanner-notquitelite-perl kann nicht gefunden werden.


Danke
Robert

MadMax-FHEM

#14
Sollte das Script nicht auf dem neu installierten System laufen?

Zitat von: https://forum.fhem.de/index.php/topic,124667.msg1192108.html#msg1192108
Ich kann Dir ein paar Zeilen Script vorschlagen um fehlende Modul zu ermitteln:
Nimm Deinen Pi mit neu installiertem FHEM (nimm bitte den easy way von debian.fhem.de)

Gruß, Joachim
FHEM PI3B+ Bullseye: HM-CFG-USB, 40x HM, ZWave-USB, 13x ZWave, EnOcean-PI, 15x EnOcean, HUE/deCONZ, CO2, ESP-Multisensor, Shelly, alexa-fhem, ...
FHEM PI2 Buster: HM-CFG-USB, 25x HM, ZWave-USB, 4x ZWave, EnOcean-PI, 3x EnOcean, Shelly, ha-bridge, ...
FHEM PI3 Buster (Test)