NEWS
UNSOLVED MySQL läuft nicht unter Node.sj v10.16.0
-
Hallo IOBroker Fangemeinde,
ich habe heute mal das empfohlene System Update vollzogen.
Erst den JS-Controller angehoben und mich dann gewagt, den Node.js anzuheben.Bei mir läuft noch nicht viel, aber ich hatte für den Tankerkönig die Spritpreise in einer SQL-Datenbank mitgelogt.
Nach dem Neustart des IOBroker konnte die SQL-Protokollierung nicht mehr gestartet werden, Adapter nicht gestartet kam als Fehler.
Eine Neuinstallation des Adapters erzeugt diese Fehlermeldungen:./iobroker add sql --host ioBroker NPM version: 6.9.0 npm install iobroker.sql@1.9.4 --production --save --prefix "/opt/iobroker" (System call) npm WARN deprecated sprintf@0.1.5: The sprintf package is deprecated in favor of sprintf-js. npm WARN deprecated core-js@1.2.7: core-js@<2.6.8 is no longer maintained. Please, upgrade to core-js@3 or at least to actual version of core-js@2. npm WARN checkPermissions Missing write access to /opt/iobroker/node_modules/iobroker.sql npm ERR! path /opt/iobroker/node_modules/iobroker.sqlnpm ERR! code EACCESnpm ERR! errno -13npm ERR! syscall access npm ERR! Error: EACCES: permission denied, access '/opt/iobroker/node_modules/iobroker.sql'npm ERR! { [Error: EACCES: permission denied, access '/opt/iobroker/node_modules/iobroker.sql']npm ERR! stack: npm ERR! 'Error: EACCES: permission denied, access \'/opt/iobroker/node_modules/iobroker.sql\'',npm ERR! errno: -13, npm ERR! code: 'EACCES',npm ERR! syscall: 'access', npm ERR! path: '/opt/iobroker/node_modules/iobroker.sql' } npm ERR! npm ERR! The operation was rejected by your operating system.npm ERR! It is likely you do not have the permissions to access this file as the current user npm ERR! npm ERR! If you believe this might be a permissions issue, please double-check the npm ERR! permissions of the file and its containing directories, or try running npm ERR! the command again as root/Administrator (though this is not recommended). npm ERR! A complete log of this run can be found in:npm ERR! /home/iobroker/.npm/_logs/2019-06-13T18_47_03_890Z-debug.log ERROR: host.ioBroker-RasPi Cannot install iobroker.sql@1.9.4: 243 ERROR: process exited with code 25]]
Eigentlich sollten alles Scribte unter Node.js 10 laufen ( bis auf 2 Ausnahmen)
Laut Fehlermeldungen will er die core-js nicht mehr unterstützen.Was muss ich jetzt installieren?
Denke hier sind die Experten, ich bin doch ein alter Microsoft Admin der hier fremd gehen wollte und offensichtlich noch viel lernen muss unter Linux. -
Ich wollte nur noch ergänzen:
Die Mariadb Lösung läuft als SQL-Server auf dem Raspi weiter.
Nur kann ich halt das SQL-Protokoll im IOBroker nicht mehr starten, da kommen halt diese Fehler im Log bzgl.
core-js@<2.6.8 is no longer maintained please upgrade to
core-js@3 or actual version core-js@2. ???Nur wie und wo mache ich das Upgrade im iobroker?
Alles nur, weil ich node.js von 8 auf 10 angehoben habe...
-
An dem gleichen Problem hänge ich nun auch.
Jemand zufällig eine Lösung dafür?
-
"ERR! path /opt/iobroker/node_modules/iobroker.sqlnpm ERR! code EACCESnpm ERR! errno -13npm ERR! syscall access"
@apollon77 said in [How-to] Node.js für ioBroker richtig updaten:
In diesem Post wollen wir Problemfälle bei "npm rebuild sammeln und deren Lösungen.
1.) Binäre Dateien existieren, aber nicht als Link wie erwartet; manuelles löschen erforderlich
Bei Fehlern wie:npm ERR! path /opt/iobroker/node_modules/.bin/iobroker npm ERR! code EEXIST npm ERR! Refusing to delete /opt/iobroker/node_modules/.bin/iobroker: is outside /opt/iobroker/node_modules/iobroker.js-controller and not a link npm ERR! File exists: /opt/iobroker/node_modules/.bin/iobroker npm ERR! Move it away, and try again.
einfach das machen was da steht und die in der Meldung genannte Datei einfach löschen und "npm rebuild" neu starten. Diese Probleme können passieren wenn das node_modules Verzeichnis mal kopiert wurde, weil dabei (wenn man nicht die korrekten Parameter nutzt) symbolische Links entfernt werden und das macht Probleme.
2.) Permission/Rechte-Fehler
Bei Meldungen mit einem "EACCESS" als Fehlercode oder "Permission denied" am besten den Installation-Fixer laufen lassen und das npm rebuild nicht mit sudo oder als root Nutzer ausführen.Wenn die Fehler in Verzeichnissen wie "/root/.npm/..." oder /home/user/.npm/..." auftreten dann diese Verzeichnisse einfach löschen und neu versuchen. Dann haben frühere Aktionen wohl das Cache-Verzeichnis kaputt gemacht.
3.) npm rebuild Fehler mit "unix-dgram 0.2.3" (js-controller 1.x mit Node.js 10/12)
Es ist ein Problemkandidat bekannt der bei "npm rebuild" zu einem Fehler führt, wodurch npm rebuild abbricht.> unix-dgram@0.2.3 install C:\Program Files\iobroker\SmartHome76\node_modules\unix-dgram > node-gyp rebuild c:\program files\iobroker\smarthome76\node_modules\unix-dgram\node_modules\nan\nan_maybe_43_inl.h(88): error C2039: "Fo rceSet": Ist kein Element von "v8::Object" (Quelldatei wird kompiliert ..\src\unix_dgram.cc) [C:\Program Files\iobroker \SmartHome76\node_modules\unix-dgram\build\unix_dgram.vcxproj]
In dem speziellen Fall hilft nur eine drastische Methode:
Im Verzeichnis node_modules/iobroker.js-controller/ folgendes ausführen:npm i unix-dgram@2.0.3
Danach "npm rebuild" nochmals anstossen.
4.) Fehler in nm Cache Verzeichnis*
Es kann hier und da vorkommen das sich mal defekte Dateien im npm Cache Verzeichnis festgesetzt haben, das gibt das Fehler wie beispielsweise:npm ERR! Unexpected end of JSON input while parsing near '...1f861b63850035ddc87",'
meistens dann bei Dateien in "/home/user/.npm/_cacache" (o.ä. Verzeichnissen mit "cache" im Namen). Dann hilft ggf ein
npm cache clean --force
oder das löschen dieses Verzeichnisses. Das npm Cache wird neu aufgebaut, was also etwas länger dauern kann.
5.) defekte Adapter-Installationen beheben
Es kann ebenso vorkommen das Adapter funktionieren aber ggf beim rebuild Probleme festgestellt werden. Meistens ist es das dann Dateien oder Abhängigkeiten fehlen. Das könnte zB so aussehen:npm ERR! path /opt/iobroker/node_modules/iobroker.discovery/node_modules/@types/iobroker/package.json npm ERR! code ENOENT npm ERR! errno -2 npm ERR! syscall open npm ERR! enoent ENOENT: no such file or directory, open '/opt/iobroker/node_modules/iobroker.discovery/node_modules/@types/iobroker/package.json' npm ERR! enoent This is related to npm not being able to find a file. npm ERR! enoent
Das wurde auch schon beim Javascript Adapter bezüglich dem Paket "uuid" berichtet.
Dann hilft es meistens den Adapter manuell in der gleichen Version wie vorhanden nochmals" drüber zu installieren. Wenn man die Version nicht weiss kann man im Adapterverzeichnis unter node_modules/iobroker.adaptername/package.json nachsehen was als Version drin steht.
Dann im ioBroker Verzeichnis ein
npm install iobroker.adaptername@version --production
ausführen.
Danach nochmals "npm rebuild".
-
Bei EACESS bitte Installation Fixer nutzen um rechte korrekt zu setzen.
Bei sql und nodejs 12 bitte neueste Version von latest nutzen.