NEWS
[Gelöst] Fehler bei Installation
-
Hallo zusammen,
ich versuche gerade ioBroker auf meinem NUC zu installieren und bekomme dabei diverse Warnungen,
und eine Fehlermeldung, dass der Controller nicht installiert werden kann. Ich vermute die Warnungen kann man ignorieren, aber die Fehlermeldung ist sicherlich erst zu nehmen, insbesondere da ioBroker auch nicht startet.Eigenartig finde ich auch die Meldung "Open http://192.168.254.54 172.17.0.1:8081..."
Das erste die die IP des NUC und die dann folgende IP sieht für mich nach einer Adresse von meiner Docker Installation aus, die auf dem selben NUC läuft. Ich installiere aber ioBroker nicht im Docker, sondern ganz normal auf dem NUC.Hier die Ausgabe aus der Console:
========================================================================== Installing ioBroker (3/4) ========================================================================== In file included from ../../nan/nan.h:56, from ../src/main.cpp:3: /home/nuc/.cache/node-gyp/12.21.0/include/node/node.h:737:43: warning: cast between incompatible function types from ‘void (*)(v8::Local<v8::Object>)’ to ‘node::addon_register_func’ {aka ‘void (*)(v8::Local<v8::Object>, v8::Local<v8::Value>, void*)’} [-Wcast-function-type] (node::addon_register_func) (regfunc), \ ^ /home/nuc/.cache/node-gyp/12.21.0/include/node/node.h:771:3: note: in expansion of macro ‘NODE_MODULE_X’ NODE_MODULE_X(modname, regfunc, NULL, 0) // NOLINT (readability/null_usage) ^~~~~~~~~~~~~ ../src/main.cpp:42:1: note: in expansion of macro ‘NODE_MODULE’ NODE_MODULE(diskusage, Init) ^~~~~~~~~~~ In file included from ../../nan/nan.h:56, from ../src/unix_dgram.cc:5: /home/nuc/.cache/node-gyp/12.21.0/include/node/node.h:737:43: warning: cast between incompatible function types from ‘void (*)(v8::Local<v8::Object>)’ to ‘node::addon_register_func’ {aka ‘void (*)(v8::Local<v8::Object>, v8::Local<v8::Value>, void*)’} [-Wcast-function-type] (node::addon_register_func) (regfunc), \ ^ /home/nuc/.cache/node-gyp/12.21.0/include/node/node.h:771:3: note: in expansion of macro ‘NODE_MODULE_X’ NODE_MODULE_X(modname, regfunc, NULL, 0) // NOLINT (readability/null_usage) ^~~~~~~~~~~~~ ../src/unix_dgram.cc:404:1: note: in expansion of macro ‘NODE_MODULE’ NODE_MODULE(unix_dgram, Initialize) ^~~~~~~~~~~ npm ERR! code ELIFECYCLE npm ERR! errno 22 npm ERR! iobroker.js-controller@3.2.16 install: `node iobroker.js setup first` npm ERR! Exit status 22 npm ERR! npm ERR! Failed at the iobroker.js-controller@3.2.16 install script. npm ERR! This is probably not a problem with npm. There is likely additional logging output above. npm ERR! A complete log of this run can be found in: npm ERR! /home/nuc/.npm/_logs/2021-03-18T14_36_42_983Z-debug.log ========================================================================== Finalizing installation (4/4) ========================================================================== Enabling autostart... Created symlink /etc/systemd/system/multi-user.target.wants/iobroker.service → /lib/systemd/system/iobroker.service. Autostart enabled! Fixing directory permissions... ========================================================================== ioBroker was installed successfully Open http://192.168.254.54 172.17.0.1:8081 in a browser and start configuring! ==========================================================================
Die zugehörige Log Datei ist hier: 2021-03-18T14_36_42_983Z-debug.log
Jemand eine Idee woran es liegen kann?
Danke im Vorraus,
JensSystemdata Bitte Ausfüllen Hardwaresystem: NUC6CAYH Arbeitsspeicher: 8 GB Festplattenart: SSD Betriebssystem: Debian 10 Buster Node-Version: v12.21.0 Nodejs-Version: v12.21.0 NPM-Version: 6.14.11 Installationsart: Skript: https://iobroker.net/install.sh (2020-12-07) Image genutzt: Nein Ort/Name der Imagedatei: -
@jewink sagte in Fehler bei Installation:
ich versuche gerade ioBroker auf meinem NUC zu installieren
@jewink sagte in Fehler bei Installation:
Ich installiere aber ioBroker nicht im Docker, sondern ganz normal auf dem NUC
wie hast du das ausgeführt?
@jewink sagte in Fehler bei Installation:
Open http://192.168.254.54
172.17.0.1:8081und was passiert wenn du das aufrufst?
-
@homoran Ausgeführt habe ich: "curl -sLf https://iobroker.net/install.sh | bash -"
Wenn ich http://192.168.254.54:8081 aufrufe bekomme ich die Felermeldung: Die Website ist nicht erreichbar. Das ist aber auch kein Wunder, da ioBroker nicht startet.
Der Befehl "sudo systemctl status iobroker" gibt folgendes aus:● iobroker.service - ioBroker Server Loaded: loaded (/lib/systemd/system/iobroker.service; enabled; vendor preset: enabled) Active: failed (Result: exit-code) since Thu 2021-03-18 15:36:44 CET; 41min ago Docs: http://iobroker.net Process: 7634 ExecStart=/bin/bash -c ${NODE} /opt/iobroker/node_modules/iobroker.js-controller/controller.js (code=exited, status=1/FAILURE) Main PID: 7634 (code=exited, status=1/FAILURE) Mar 18 15:36:44 smarthome systemd[1]: iobroker.service: Service RestartSec=100ms expired, scheduling restart. Mar 18 15:36:44 smarthome systemd[1]: iobroker.service: Scheduled restart job, restart counter is at 5. Mar 18 15:36:44 smarthome systemd[1]: Stopped ioBroker Server. Mar 18 15:36:44 smarthome systemd[1]: iobroker.service: Start request repeated too quickly. Mar 18 15:36:44 smarthome systemd[1]: iobroker.service: Failed with result 'exit-code'. Mar 18 15:36:44 smarthome systemd[1]: Failed to start ioBroker Server.
Und wenn ich "iobroker" auf der Shell eingebe erhalte ich folgendes:
internal/modules/cjs/loader.js:818 throw err; ^ Error: Cannot find module '/opt/iobroker/node_modules/iobroker.js-controller/iobroker.js' at Function.Module._resolveFilename (internal/modules/cjs/loader.js:815:15) at Function.Module._load (internal/modules/cjs/loader.js:667:27) at Function.executeUserEntryPoint [as runMain] (internal/modules/run_main.js:60:12) at internal/main/run_main_module.js:17:47 { code: 'MODULE_NOT_FOUND', requireStack: [] }
Gruss, Jens
-
@jewink sagte in Fehler bei Installation:
Ausgeführt habe ich: "curl -sLf https://iobroker.net/install.sh | bash -"
Im Grundsystem (Debian)?
in welchem Verzeichnis?
Als welcher User?Da ich mich mit Docker gar nicht auskenne, weiß ich nicht, ob da irgendetwas umgebogen wird, z.B. IP-Adressen
@jewink sagte in Fehler bei Installation:
Das ist aber auch kein Wunder, da ioBroker nicht startet.
Woher weisst du das?
@jewink sagte in Fehler bei Installation:
Der Befehl "sudo systemctl status iobroker" gibt folgendes aus:
wie kommst du af den Befehl?
Warum nichtiobroker status
? -
Im Grundsystem (Debian)?
Ja
in welchem Verzeichnis?
In das Verzeichnis, welches der Installer automatisch benutzt: /opt/iobroker
Als welcher User?
Ich habe es versucht als root und auch als normaler User. Dann werde ich zusätzlich nach dem sudo Passwort gefragt. Beide Male erhalte ich dieselbe Fehlermeldung.
Da ich mich mit Docker gar nicht auskenne, weiß ich nicht, ob da irgendetwas umgebogen wird, z.B. IP-Adressen
Soweit ich weiss wird am Grundsystem IP-technisch nichts umgebogen. Docker hat allerdings sein eigenes Netzwerk, welches bei mir mit 172.17.... anfängt.
@jewink sagte in Fehler bei Installation:
Das ist aber auch kein Wunder, da ioBroker nicht startet.
Woher weisst du das?
Weil "ps -ef | grep -i iobroker" nichts findet.
@jewink sagte in Fehler bei Installation:
Der Befehl "sudo systemctl status iobroker" gibt folgendes aus:
wie kommst du af den Befehl?
Da ioBroker den systemd Service benutzt, kann man den Status mit systemctl abfragen.
Warum nicht iobroker status?
Der einfache Aufruf von "iobroker" sollte eine Liste mit möglichen Befehlen zurückgeben, wenn ich mich nicht irre. Da das schon nicht funktioniert, wird auch jeder weitere Parameter kein Ergebnis zurückgeben. "iobroker status" schmeisst übrigens den selben Fehler.
-
@jewink sagte in Fehler bei Installation:
n das Verzeichnis, welches der Installer automatisch benutzt: /opt/iobroker
das existiert da noch gar nicht!
@homoran sagte in Fehler bei Installation:
in welchem Verzeichnis?
hast du
@jewink sagte in Fehler bei Installation:
Ausgeführt habe ich: "curl -sLf https://iobroker.net/install.sh | bash -"
@jewink sagte in Fehler bei Installation:
Der einfache Aufruf von "iobroker" sollte eine Liste mit möglichen Befehlen zurückgeben
ja
@jewink sagte in Fehler bei Installation:
Da das schon nicht funktioniert,
ist iobroker wahrscheinlich nicht auf dem Debian-System installiert
Hast du es mal im Docker probiert aufzurufen?
(wenn so etwas überhaupt geht)Dann bin ich leider raus
-
@jewink sagte in Fehler bei Installation:
n das Verzeichnis, welches der Installer automatisch benutzt: /opt/iobroker
das existiert da noch gar nicht!
Habe ich falsch verstanden, ich war in der ROOT als ich das Script aufgerufen habe.
@homoran sagte in Fehler bei Installation:
in welchem Verzeichnis?
hast du
@jewink sagte in Fehler bei Installation:
Ausgeführt habe ich: "curl -sLf https://iobroker.net/install.sh | bash -"
@jewink sagte in Fehler bei Installation:
Da das schon nicht funktioniert,
ist iobroker wahrscheinlich nicht auf dem Debian-System installiert
Richtig, das ist mein Problem. Die Fehlermeldung besagt ja, dass der Controller nicht installiert werden konnte. (npm ERR! Failed at the iobroker.js-controller@3.2.16 install script). Ich habe aber keine Ahnung warum.
Hast du es mal im Docker probiert aufzurufen?
(wenn so etwas überhaupt geht)Nee, das geht nicht.
Dann bin ich leider raus
OK, danke für deine Hilfe.
Hat vielleicht sonst noch jemand eine Idee?
-
@jewink sagte in Fehler bei Installation:
ich war in der ROOT als ich das Script aufgerufen habe.
oder in /root?
das kann natürlich ein Problem sein, da der user iobroker, unter dem dann alles laufen soll, kein Zugriff darauf hat -
@jewink sagte in Fehler bei Installation:
ich war in der ROOT als ich das Script aufgerufen habe.
oder in /root?
Ich stand in /. Aber ich habe mal kurz auf das Script geschaut, es sollte eigentlich keinen Unterscheid machen wo man steht, da das Script absolute Pfade verwendet.
-
@jewink sagte in Fehler bei Installation:
es sollte eigentlich keinen Unterscheid machen
ja, man sollte auch als root installieren können.
Dann kann ich dir leider nicht mehr helfen, da reicht mein Wissen nicht aus
-
Wie sieht denn die Node und NPM Installation aus?
which nodejs && nodejs -v && which node && node -v && which npm && npm -v && apt policy nodejs
-
@wendy2702 said in Fehler bei Installation:
which nodejs && nodejs -v && which node && node -v && which npm && npm -v && apt policy nodejs
Das sollte eigentlich alles passen. Das sind die Versionen, die das Installer Script automatisch installiert hat.
/usr/bin/nodejs v12.21.0 /usr/bin/node v12.21.0 /usr/bin/npm 6.14.11 nodejs: Installed: 12.21.0-1nodesource1 Candidate: 12.21.0-1nodesource1 Version table: *** 12.21.0-1nodesource1 500 500 https://deb.nodesource.com/node_12.x buster/main amd64 Packages 100 /var/lib/dpkg/status 10.24.0~dfsg-1~deb10u1 500 500 http://security.debian.org/debian-security buster/updates/main amd64 Packages 10.21.0~dfsg-1~deb10u1 500 500 http://ftp.de.debian.org/debian buster/main amd64 Packages
-
@jewink Lief der letzte Versuch als “root” ? Falls ja mal bitte den Fixer laufen lassen und dann —>
Kannst du mal das machen
cd /opt/iobroker/ sudo -H -u iobroker npm install iobroker.js-controller
Und davon die Ausgabe posten.
-
-
@wendy2702
Die Fehlermeldung als normaler User oder auch als ROOT war immer die gleiche. Ich hatte auch schon versucht den Controller einzeln nachzuinstallieren. Aber auch dabei kam die bekannte Fehlermeldung.@thomas-braun
Ja es gibt einen User nuc. Wenn ich den Befehl ausführe bekomme ich "root" als Ausgabe zurück.
Aber ich habe es jetzt nach unzähligen Versuchen tatsächlich hinbekommen, dass sich ioBroker ohne Fehler installieren ließ. Die Lösung war alle Docker Container vor der Installation zu beenden. Ich vermute, dass es daran lag, dass ein Container (Portainer) den Port 9000 belegt hat, der scheinbar auch vom ioBroker Controller benutzt wird. Das war mir so nicht bewusst und die Fehlermeldung hat ja auch nicht unbedingt darauf hingedeutet.
Ich danke allen, die versucht haben mir mit meinem Problem zu helfen. Ich könnte den Post auf "gelöst" setzen, wenn es hier im Forum so gehandhabt wird.
Viele Grüße, Jens
-
@jewink Danke für die Info. Das mit dem Portainer hatten wir schonmal im Forum. Hätte an der Stelle geholfen wenn du es erwähnt hättest.
Aber läuft ja jetzt.
Thema als Gelöst markieren indem du den Titel vom ersten Post um ein
[Gelöst]
ergänzt.
-
@jewink sagte in Fehler bei Installation:
Ja es gibt einen User nuc. Wenn ich den Befehl ausführe bekomme ich "root" als Ausgabe zurück.
Dann meld dich auch nicht als root an.
-
@wendy2702
Wenn ich geahnt hätte, dass es eine Rolle spielt, hätte ich es erwähnt. Aber wenn man sein Problem beschreibt, denkt man ja nicht immer an alle Möglichkeiten.
Ok, ich setzte dann den Post auf [Gelöst].@thomas-braun
Den Kommentar verstehe ich nicht. Ich habe mich nicht als root angemeldet. Ein "sudo whoami" gibt immer root als Ausgabe zurück, egal als welcher User man den Befehl ausführt. Dafür steht ja das "sudo" davor. -
@jewink sagte in Fehler bei Installation:
Ich habe es versucht als root und auch als normaler User.
Deswegen mein Kommentar.
Und das man mit sudo (auch) in die root-Rolle wechseln kann weiß ich.Ein "sudo whoami" gibt immer root als Ausgabe zurück, egal als welcher User man den Befehl ausführt.
Stimmt so generell natürlich auch nicht. Der User muss schon in den richtigen Gruppen oder in den sudoers eingetragen sein.