[98_Installer.pm] FHEM Installer Helfer-Modul

Begonnen von Loredo, 10 März 2019, 15:44:54

Vorheriges Thema - Nächstes Thema

Loredo

Zitat von: TNT0068 am 18 April 2019, 19:06:10
Laut passwd ist das Home Dir von fhem:/opt/fhem

Ich hatte mal Onkel Google wegen dem Fehler bemüht. Spuckt einiges aus das ein Bug im cpanminus ist. Aber kann mich da auch irren.


Ah, danke. Ich denke das hat mich noch darauf gebracht "sudo -H" zu verwenden. Bitte mit dem Update morgen nochmals ausprobieren.
Hat meine Arbeit dir geholfen? ⟹ https://paypal.me/pools/c/8gDLrIWrG9

Maintainer:
FHEM-Docker Image, https://github.com/fhem, Astro(Co-Maintainer), ENIGMA2, GEOFANCY, GUEST, HP1000, Installer, LaMetric2, MSG, msgConfig, npmjs, PET, PHTV, Pushover, RESIDENTS, ROOMMATE, search, THINKINGCLEANER

TNT0068

Zitat von: Loredo am 18 April 2019, 20:15:12

Ah, danke. Ich denke das hat mich noch darauf gebracht "sudo -H" zu verwenden. Bitte mit dem Update morgen nochmals ausprobieren.

mache ich glatt. Danke erstmal für die Hilfe, werde dann berichten
Homematic HMLAN HMUSB Heizung, Strom und Licht , Vuduo2, Kodi, Hue, Logitech Harmony Hub, Alexa

Invers

Ich habe mir den Installer auch installiert. Funktioniert eigentlich prima, soweit ich das beurteilen kann. Finde ich echt toll.

Es ist erstaunlich, wieviele fehlende Perl-Pakete angemeckert wurden.
Ich habe alle (ausser Telnet) installiert. Braucht man die wirklich alle? Fhem lief eigentlich klaglos.

Ein Paket liess sich nicht installieren, weil der Name falsch war.  Den falschen Namen habe ich vergessen (image-librsvg, oder so ), aber richtig ist: libimage-librsvg-perl.
Damit konnte ich per Putty installieren.
Durch den falschen Namen wurde die Installation aller Perl-Module abgebrochen, aber man sieht nicht, wer Schuld hat. Vielleicht könnte da die Fehlermeldung konkretisiert werden?
Pi3B+ mit SSD/ Bullseye | FB7590 AX | 12 x Dect200 | CUL433+868 | SDuino | HM-LAN | 3 x Heizung FHT + FKontakte | KeyMatic + 4 FB | HM Wandtaster 2-fach m. LED | 6 x Türkont. TFK-TI | HM-Bew.-Melder innen | 3 x Smoked. HM-SEC-SD-2

Loredo

Zitat von: Invers am 19 April 2019, 09:27:00
Ich habe alle (ausser Telnet) installiert. Braucht man die wirklich alle? Fhem lief eigentlich klaglos.


Ja, man sollte alle Pakete installieren, um den vollen Funktionsumfang zu haben.
Auch macht es teilweise einen Unterschied in der Systemperformance, wenn man etwas nicht installiert hat und auf ein weniger performanteres Perl Modul ausgewichen wird.
Das ist beispielsweise bei JSON der Fall: Perl kommt seit Version 5.14 mit JSON::PP eingebaut. Das von vielen Modulen verwendete "JSON" ist dann für viele Module trotzdem Voraussetzung, allerdings handelt es sich dabei nur um einen Wrapper, der auf JSON::PP zurückgreift, wenn nichts anderes installiert ist. Deshalb kann es nach Möglichkeit der Systemumgebung sinnvoll sein, z.B. Cpanel::JSON::XS oder JSON::XS zusätzlich zu installieren. Seit heute weist der Installer deshalb auch Cpanel::JSON::XS und JSON::XS mit aus. An diesem Beispiel wird deutlich: Die Funktion ansich wäre wahrscheinlich auch so gegeben, aber es kann trotzdem einen Unterschied machen.


Dann sind da noch Module, bei denen einzelne Funktionen erst gehen, wenn das Perl Modul dazu installiert ist. Sie sind aber oft so geschrieben, dass die Kernfunktion auch ohne diese Perl Module gegeben ist. Streng genommen sind dann die zusätzlichen Module nicht unbedingt notwendig, aber es schadet auch nicht sie installiert zu haben. Außerdem lässt sich von außen betrachtet nicht unbedingt erahnen, was das Modul mit dem Perl Modul anfängt oder nicht.


Zitat von: Invers am 19 April 2019, 09:27:00
Ein Paket liess sich nicht installieren, weil der Name falsch war.  Den falschen Namen habe ich vergessen (image-librsvg, oder so ), aber richtig ist: libimage-librsvg-perl.


Was du meinst ist, dass ein Debian Paket nicht komplett dem Namen eines Perl Moduls entspricht. Das ist korrekt, aber der Installer zeigt eben auch den Perl Modulnamen an - nicht den des Installations-Pakets für deine Linux Distribution. Das sind zwei unterschiedliche paar Schuhe.
Der FHEM Installer verwendet die direkte Installation der Perl Pakete über CPAN (www.metacpan.org). Die alternative/bevorzugte Installation über Pakete aus der Linux Distribution ist geplant, aber auch dort gibt es nicht immer alle Perl Pakete oder nicht in der benötigten Version. Die Installation über CPAN ist demnach sicherer. Es gibt aber Perl Pakete, die kompiliert werden müssen und da kann es sein, dass man trotzdem manuell noch Bibliotheken/Libraries über den Linux Paketmanager installieren muss (z.B. libxml2 bei XML::LibXML).


Zitat von: Invers am 19 April 2019, 09:27:00
Durch den falschen Namen wurde die Installation aller Perl-Module abgebrochen, aber man sieht nicht, wer Schuld hat. Vielleicht könnte da die Fehlermeldung konkretisiert werden?


Meinst du jetzt eine Fehlermeldung auf der Kommandozeile in deinem Putty oder die Ausgabe von "get showErrorList"?
Letzteres gibt eigentlich jeden Fehler einzeln aus. Wenn mehrere Pakete installiert werden und es gibt einen Fehler bei einem, dann sind die restlichen trotzdem installiert.


Im Falle der Kommandozeile hat der Installer keine Ahnung davon, was du selbst machst. Ich vermute du hast apt-get benutzt und da ist es ganz normal, dass eine Liste von Paketen nur dann installiert wird, wenn alle Namen stimmen. Das ist aber eine Sache davon, wie du mit Linux umzugehen hast, nicht mit FHEM oder dem Installer.
Hat meine Arbeit dir geholfen? ⟹ https://paypal.me/pools/c/8gDLrIWrG9

Maintainer:
FHEM-Docker Image, https://github.com/fhem, Astro(Co-Maintainer), ENIGMA2, GEOFANCY, GUEST, HP1000, Installer, LaMetric2, MSG, msgConfig, npmjs, PET, PHTV, Pushover, RESIDENTS, ROOMMATE, search, THINKINGCLEANER

TNT0068

Zitat von: Loredo am 18 April 2019, 20:15:12

Ah, danke. Ich denke das hat mich noch darauf gebracht "sudo -H" zu verwenden. Bitte mit dem Update morgen nochmals ausprobieren.

Nun sieht der Installer gut aus. Danke für den Fix
Homematic HMLAN HMUSB Heizung, Strom und Licht , Vuduo2, Kodi, Hue, Logitech Harmony Hub, Alexa

Invers

Danke für die wirklich ausführliche und verständliche Antwort.
Ich meinte mit der Fehlermeldung Error im Modul Live System Prerequisites Check, nicht in Putty.
Ich habe dann aber über Putty installiert.
Dort funktionierte:      sudo apt-get install libimage-librsvg-perl
es funktionierte nicht: sudo apt-get install Image::LibRSVG

Das funktionierte halt auch nicht mit dem Menüpunkt des Moduls Install suggested Perl oder Install.
Seit der Installation per Putty wird das Fehlen des libimage-librsvg-perl vom Installer nicht mehr bemängelt.
Pi3B+ mit SSD/ Bullseye | FB7590 AX | 12 x Dect200 | CUL433+868 | SDuino | HM-LAN | 3 x Heizung FHT + FKontakte | KeyMatic + 4 FB | HM Wandtaster 2-fach m. LED | 6 x Türkont. TFK-TI | HM-Bew.-Melder innen | 3 x Smoked. HM-SEC-SD-2

supernova1963

Super Hilfsmodul, und auch sehr intuitiv, Loredo !!!

vielen, vielen, vielen Dank !!!

Installation hat schnell und sauber funktioniert nachdem ich den Hinweis auf den sudoers - Eintrag gefunden hatte.
Ich habe unter /etc/sudors.d eine Datei mit dem Namen fheminstaller
sudo visudo -f /etc/sudoers.d/fheminstaller
und dem Inhalt
fhem ALL=(ALL) NOPASSWD:SETENV: /usr/bin/cpanm *
erstellt und sicherheitshalber neu gestartet
sudo reboot
Danach in der fhem Befehlszeile nur noch ein
define fheminstaller installer
und ich konnte mein System überprüfen lassen ...

Danke,

Gernot

MadMax-FHEM

#52
Auch von mir danke!

Hab's mal (auf meinem Testsystem) "installiert" und lese hier mal mit... ;)

EDIT: habe nur folgendes im Log "gefunden"
2019.04.21 12:27:42 1: PERL WARNING: Argument "3/8" isn't numeric in numeric gt (>) at ./FHEM/98_Installer.pm line 5134.

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)

Loredo

Hat meine Arbeit dir geholfen? ⟹ https://paypal.me/pools/c/8gDLrIWrG9

Maintainer:
FHEM-Docker Image, https://github.com/fhem, Astro(Co-Maintainer), ENIGMA2, GEOFANCY, GUEST, HP1000, Installer, LaMetric2, MSG, msgConfig, npmjs, PET, PHTV, Pushover, RESIDENTS, ROOMMATE, search, THINKINGCLEANER

kaihs

Ich habe auch mal ein Installer Device installiert.

Das führt aber dazu, dass ich so eine Mail von root erhalte:
Zitat
Betreff: *** SECURITY information for localhost ***
localhost : Apr 21 14:14:21 : fhem : a password is required ; TTY=unknown ; PWD=/opt/fhem ; USER=root ; COMMAND=/usr/bin/cpanm --version

Könnte den einen oder anderen etwas irritieren. Es gibt dazu ja auch keine Information in der Commandref.
Sollte dort vielleicht (mit dem nötigen Anpassungen an den sudoer Einstellung) erwähnt werden.
Banana Pi, Add-On Board mit 1.8" TFT LCD und IR-Sender, CULFW V1.61, div. Homematic Komponenten, Pollin Funksteckdosen, Selbstbau CUL433 MHz, Jeelink Clone, EC3000
Selbstbau CUL868MHz für Wireless M-Bus, SIGNALduino mit Logilink Temp.-sensoren und Auriol Wetterstation

Loredo

#55
Das ist eigentlich auch unnötig, weil der Hinweis live im Installer über die Error Messages ausgegeben wird, wenn es notwendig ist.

Die Email wird nicht auf jedem System generiert, weil es davon abhängt, wie das System konfiguriert ist. Eine generalisierte "vielleicht wenn dann sonst" Aussage hilft wenig oder verwirrt nur und braucht daher auch IMHO nicht in eine Commandref.
Hat meine Arbeit dir geholfen? ⟹ https://paypal.me/pools/c/8gDLrIWrG9

Maintainer:
FHEM-Docker Image, https://github.com/fhem, Astro(Co-Maintainer), ENIGMA2, GEOFANCY, GUEST, HP1000, Installer, LaMetric2, MSG, msgConfig, npmjs, PET, PHTV, Pushover, RESIDENTS, ROOMMATE, search, THINKINGCLEANER

DeeSPe

Ich habe heute meine Test-Installation auf meiner Windows Workstation aktualisiert und das Installer Modul vom 21.4.2019 erhalten.
Nach einem "shutdown restart" beendet sich nun mein FHEM immer wieder mit dieser Fehlermeldung:
Zitat2019.04.24 14:09:48.080 1: Including ./log/fhem.save
2019.04.24 14:09:48.762 2: SubProcess: onRun returned error: Can't find Unicode property definition "e" in regex; marked by <-- HERE in m/^H:\fhem\pe <-- HERE rl\bin$/ at ./FHEM/98_Installer.pm line 5383.

Meine FHEM Installation liegt unter "H:\fhem", Perl unter "H:\fhem\perl\bin\perl.exe".

Gruß
Dan
MAINTAINER: 22_HOMEMODE, 98_Hyperion, 98_FileLogConvert, 98_serviced

Als kleine Unterstützung für meine Programmierungen könnt ihr mir gerne einen Kaffee spendieren: https://buymeacoff.ee/DeeSPe

Loredo

Für Windows entwickle ich leider nicht noch teste ich darunter.
Hilft es denn, wenn du vor Zeile 5383 in FHEM/98_Installer.pm dies hier einfügst:


$p =~ s/\\/\\\/g;
Hat meine Arbeit dir geholfen? ⟹ https://paypal.me/pools/c/8gDLrIWrG9

Maintainer:
FHEM-Docker Image, https://github.com/fhem, Astro(Co-Maintainer), ENIGMA2, GEOFANCY, GUEST, HP1000, Installer, LaMetric2, MSG, msgConfig, npmjs, PET, PHTV, Pushover, RESIDENTS, ROOMMATE, search, THINKINGCLEANER

DeeSPe

Zitat von: Loredo am 24 April 2019, 15:39:44
Für Windows entwickle ich leider nicht noch teste ich darunter.
Hilft es denn, wenn du vor Zeile 5383 in FHEM/98_Installer.pm dies hier einfügst:


$p =~ s/\\/\\\/g;


Wenn Du nicht für Windows entwickelst und auch nicht testest, wie kann dann der User (der FHEM auf Windows einsetzt) verhindern dass das Modul geladen wird?
Ich habe kein definiertes Devices vom Type Installer und trotzdem zwingt das Modul mein FHEM in die Knie!

Dein Codevorschlag scheint aber zu helfen, jedenfalls startet mein FHEM wieder, danke.

Gruß
Dan

P.S. Es gibt einen (scheinbar auch aktuellen) Wiki Eintrag wie man FHEM auf einem Windows System betreibt. Wenn FHEM durch die standardmäßige Verwendung von nicht für Windows optimierten Modulen nun nicht mehr startet, dann sollte es m.E. auch keinen Hinweis mehr auf den Betrieb unter Windows geben, denn das scheint ja nicht erwünscht zu sein.
MAINTAINER: 22_HOMEMODE, 98_Hyperion, 98_FileLogConvert, 98_serviced

Als kleine Unterstützung für meine Programmierungen könnt ihr mir gerne einen Kaffee spendieren: https://buymeacoff.ee/DeeSPe

Loredo

#59
Ohne ein "define" wird die Datei 98_Installer nicht geladen, das ist leider Fakt.
Eine Blanko-Neuinstallation des FHEM Docker Image definiert den Installer per Default mit, er lässt sich aber problemlos entfernen. Auch FHEM Docker ist aber nicht für Windows ausgelegt.

Freiwillige dürfen sich gerne an Entwicklung und Test für Windows beteiligen - ich kann das nicht leisten (und muss das auch nicht).
Übrigens geben die FHEM Nutzungsstatistiken durchaus den Indikator, dass Windows keine große Rolle mehr spielt. In Zeiten von Virtualisierung kann man erwarten (oder erwarte ich), dass das auch zum Einsatz kommt.


Zitat
P.S. Es gibt einen (scheinbar auch aktuellen) Wiki Eintrag wie man FHEM auf einem Windows System betreibt. Wenn FHEM durch die standardmäßige Verwendung von nicht für Windows optimierten Modulen nun nicht mehr startet, dann sollte es m.E. auch keinen Hinweis mehr auf den Betrieb unter Windows geben, denn das scheint ja nicht erwünscht zu sein.


Wo genau hast du denn gelesen, dass der FHEM Installer (also das Modul "Installer"!) einen Hinweis darauf gibt, wie man es unter Windows verwendet?
Hat meine Arbeit dir geholfen? ⟹ https://paypal.me/pools/c/8gDLrIWrG9

Maintainer:
FHEM-Docker Image, https://github.com/fhem, Astro(Co-Maintainer), ENIGMA2, GEOFANCY, GUEST, HP1000, Installer, LaMetric2, MSG, msgConfig, npmjs, PET, PHTV, Pushover, RESIDENTS, ROOMMATE, search, THINKINGCLEANER