NEWS
Hilfe, ioBroker startet nicht mehr
-
Hallo zusammen
Scheinbar durch ein Update von node 4.6 auf 9.2 funktioniert mein System nicht mehr.
Scheinbar fehlt iobroker.js
root@raspberrypi:/opt/iobroker# iobroker status module.js:544 throw err; ^ Error: Cannot find module '/opt/iobroker/node_modules/iobroker.js-controller/iobroker.js' at Function.Module._resolveFilename (module.js:542:15) at Function.Module._load (module.js:472:25) at Function.Module.runMain (module.js:682:10) at startup (bootstrap_node.js:191:16) at bootstrap_node.js:613:3
Wenn ich versuche iobroker.js-controller neu zu installieren kommt nur
root@raspberrypi:/opt/iobroker# npm install iobroker.js-controller --production npm WARN deprecated localhost.daplie.me-certificates@1.3.5: this package has been deprecated npm ERR! path /opt/iobroker/node_modules/npm/node_modules/abbrev/npm-shrinkwrap.json npm ERR! code ENOTDIR npm ERR! errno -20 npm ERR! syscall open npm ERR! ENOTDIR: not a directory, open '/opt/iobroker/node_modules/npm/node_modules/abbrev/npm-shrinkwrap.json' npm ERR! A complete log of this run can be found in: npm ERR! /root/.npm/_logs/2017-11-30T20_24_35_191Z-debug.log
Hat jemand eine Idee? Ich muss das System dringend wieder in Betrieb haben
HILFE! :shock:
Gruß
Stefan
-
Scheinbar durch ein Update von node 4.6 auf 9.2 funktioniert mein System nicht mehr. `
Super!Nodejs 9 ist bleeding edge. Wahrscheinlich ist da auch npm 5.x oder schlimmeres dabei.
Im Moment wird nur 6.x empfohlen, evtl. noch 8.x (alle ungeraden Versionen sind Entwicklerversionen) und dann npm auf 3.x downgraden.
Gruß Rainer
-
Das hab ich jetzt auch gemerkt
Hab auf "stable" geupdated, das war dann eben 9.2.0
Ich bin jetzt mit "n 6.5" wieder auf Version 6.5 zurück
Leider schlägt die installation von iobroker.js weiterhin fehl.
Diesmal mit
root@raspberrypi:/opt/iobroker# npm install iobroker.js-controller npm WARN deprecated localhost.daplie.me-certificates@1.3.5: this package has been deprecated > unix-dgram@0.2.3 install /opt/iobroker/node_modules/unix-dgram > node-gyp rebuild make: Entering directory '/opt/iobroker/node_modules/unix-dgram/build' CXX(target) Release/obj.target/unix_dgram/src/unix_dgram.o SOLINK_MODULE(target) Release/obj.target/unix_dgram.node COPY Release/unix_dgram.node make: Leaving directory '/opt/iobroker/node_modules/unix-dgram/build' > ursa@0.9.4 install /opt/iobroker/node_modules/ursa > node-gyp rebuild make: Entering directory '/opt/iobroker/node_modules/ursa/build' CXX(target) Release/obj.target/ursaNative/src/ursaNative.o SOLINK_MODULE(target) Release/obj.target/ursaNative.node COPY Release/ursaNative.node make: Leaving directory '/opt/iobroker/node_modules/ursa/build' > iobroker.js-controller@1.2.3 install /opt/iobroker/node_modules/iobroker.js-controller > node iobroker.js setup first module.js:457 throw err; ^ Error: Cannot find module '../../../modules/es6.string.code-point-at' at Function.Module._resolveFilename (module.js:455:15) at Function.Module._load (module.js:403:25) at Module.require (module.js:483:17) at require (internal/module.js:20:19) at Object. <anonymous>(/opt/iobroker/node_modules/code-point-at.js:1:63) at Module._compile (module.js:556:32) at Object.Module._extensions..js (module.js:565:10) at Module.load (module.js:473:32) at tryModuleLoad (module.js:432:12) at Function.Module._load (module.js:424:3) npm ERR! Linux 4.9.35-v7+ npm ERR! argv "/usr/local/bin/node" "/usr/local/bin/npm" "install" "iobroker.js-controller" npm ERR! node v6.5.0 npm ERR! npm v3.10.3 npm ERR! code ELIFECYCLE npm ERR! iobroker.js-controller@1.2.3 install: `node iobroker.js setup first` npm ERR! Exit status 1 npm ERR! npm ERR! Failed at the iobroker.js-controller@1.2.3 install script 'node iobroker.js setup first'. npm ERR! Make sure you have the latest version of node.js and npm installed. npm ERR! If you do, this is most likely a problem with the iobroker.js-controller package, npm ERR! not with npm itself. npm ERR! Tell the author that this fails on your system: npm ERR! node iobroker.js setup first npm ERR! You can get information on how to open an issue for this project with: npm ERR! npm bugs iobroker.js-controller npm ERR! Or if that isn't available, you can get their info via: npm ERR! npm owner ls iobroker.js-controller npm ERR! There is likely additional logging output above. npm ERR! Please include the following file with any support request: npm ERR! /opt/iobroker/npm-debug.log</anonymous>
-
Hat jemand eine Idee, warum sich der js-controller nicht installieren lässt?
> iobroker.js-controller@1.2.3 install /opt/iobroker/node_modules/iobroker.js-controller > node iobroker.js setup first module.js:457 throw err; ^ Error: Cannot find module '../../../modules/es6.string.code-point-at' at Function.Module._resolveFilename (module.js:455:15) at Function.Module._load (module.js:403:25) at Module.require (module.js:483:17) at require (internal/module.js:20:19) at Object. <anonymous>(/opt/iobroker/node_modules/code-point-at.js:1:63) at Module._compile (module.js:556:32) at Object.Module._extensions..js (module.js:565:10) at Module.load (module.js:473:32) at tryModuleLoad (module.js:432:12) at Function.Module._load (module.js:424:3)</anonymous>
Irgendwer eine Idee, wie ich das System wieder auf die Beine bringen kann?
-
Ist dieses Problem wirklich so unbekannt und niemand hat den Hauch einer Idee wie ich das wieder hin bekomme?
Ich hab jetzt auch versucht ioBroker mit npm rm iobroker und anschliessend npm install iobroker neu zu installieren.
Auch das schlägt fehl.
Was wäre der sauberste weg iobroker komplett zu deinstallieren und anschliessend neu aufzusetzen?
An Installation und Update kann scheinbar noch vieles verbessert werden
-
st dieses Problem wirklich so unbekannt `
Da hier keiner nachvollziehen kann, was bei dir wirklich schiefgelaufen ist - Ja!An Installation und Update kann scheinbar noch vieles verbessert werden `
s.o.Hier geht es weder um Installation noch Update sondern um einen individuellen Fall der Reparatur.
Was wäre der sauberste weg iobroker komplett zu deinstallieren und anschliessend neu aufzusetzen? `
das komplette Verzeichnis /opt/iobroker zu löschen.ABER:
eventuell ist die ioBroker Installation nicht dein Problem, sondern eine korrupte nodejs Installation.
Die müsste man (auf jeden Fall wenn sie nicht korrupt ist) gemäß der Anleitung reparieren können.
http://www.iobroker.net/docu/?page_id=5 … ion_Nodejs
Schritt (2)
Gruß
Rainer
-
Ich habe jetzt nach der Anleitung nodejs deinstalliert und neu installiert.
Dann nach Anleitung im /opt/iobroker Verzeichnis "npm install iobroker" aufgerufen
In das iobroker Verzeichnis wird allerdings nicht eine Datei kopiert.
Das node_modules Verzeichnis liegt jetzt unter /opt/node_modules
Irgendwas stimmt mit den Verzeichnissen nicht.
Ein "iobroker start" sucht dann nämlich im "/opt/iobroker" verzeichnis
root@raspberrypi:/opt# iobroker start module.js:471 throw err; ^ Error: Cannot find module '/opt/iobroker/node_modules/iobroker.js-controller/iobroker.js' at Function.Module._resolveFilename (module.js:469:15) at Function.Module._load (module.js:417:25) at Module.runMain (module.js:604:10) at run (bootstrap_node.js:383:7) at startup (bootstrap_node.js:149:9) at bootstrap_node.js:496:3
Hier das Log von der Installation
root@raspberrypi:/opt# mkdir iobroker root@raspberrypi:/opt# chmod 777 /opt/iobroker/ root@raspberrypi:/opt# cd iobroker/ root@raspberrypi:/opt/iobroker# root@raspberrypi:/opt/iobroker# root@raspberrypi:/opt/iobroker# npm install iobroker --unsafe-perm > iobroker@1.0.2 install /opt/node_modules/iobroker > node lib/setup.js npm install iobroker.discovery --production --prefix /opt node-pre-gyp ERR! Tried to download(404): https://github.com/EmergingTechnologyAdvisors/node-serialport/releases/download/4.0.7/serialport-v4.0.7-node-v48-linux-arm.tar.gz node-pre-gyp ERR! Pre-built binaries not found for serialport@4.0.7 and node@6.12.0 (node-v48 ABI) (falling back to source compile with node-gyp) ../src/serialport.cpp: In function ‘int getIntFromObject(v8::Local<v8::object>, std::string)’: ../src/serialport.cpp:90:52: warning: ‘v8::Local <v8::int32>v8::Value::ToInt32() const’ is deprecated (declared at /root/.node-gyp/6.12.0/include/node/v8.h:8214): Use maybe version [-Wdeprecated-declarations] return getValueFromObject(options, key)->ToInt32()->Int32Value(); ^ ../src/serialport.cpp: In function ‘double getDoubleFromObject(v8::Local<v8::object>, std::string)’: ../src/serialport.cpp:102:53: warning: ‘v8::Local <v8::number>v8::Value::ToNumber() const’ is deprecated (declared at /root/.node-gyp/6.12.0/include/node/v8.h:8178): Use maybe version [-Wdeprecated-declarations] return getValueFromObject(options, key)->ToNumber()->NumberValue(); ^ ../src/serialport.cpp: In function ‘void EIO_AfterOpen(uv_work_t*)’: ../src/serialport.cpp:174:31: warning: ‘v8::Local <v8::int32>v8::Value::ToInt32() const’ is deprecated (declared at /root/.node-gyp/6.12.0/include/node/v8.h:8214): Use maybe version [-Wdeprecated-declarations] int fd = argv[1]->ToInt32()->Int32Value(); ^ ../src/serialport.cpp: In function ‘Nan::NAN_METHOD_RETURN_TYPE Update(Nan::NAN_METHOD_ARGS_TYPE)’: ../src/serialport.cpp:193:29: warning: ‘v8::Local <v8::int32>v8::Value::ToInt32() const’ is deprecated (declared at /root/.node-gyp/6.12.0/include/node/v8.h:8214): Use maybe version [-Wdeprecated-declarations] int fd = info[0]->ToInt32()->Int32Value(); ^ ../src/serialport.cpp:217:116: warning: ‘v8::Local <v8::int32>v8::Value::ToInt32() const’ is deprecated (declared at /root/.node-gyp/6.12.0/include/node/v8.h:8214): Use maybe version [-Wdeprecated-declarations] baton->baudRate = Nan::Get(options, Nan::New<v8::string>("baudRate").ToLocalChecked()).ToLocalChecked()->ToInt32()->Int32Value(); ^ ../src/serialport.cpp: In function ‘Nan::NAN_METHOD_RETURN_TYPE Write(Nan::NAN_METHOD_ARGS_TYPE)’: ../src/serialport.cpp:252:29: warning: ‘v8::Local <v8::int32>v8::Value::ToInt32() const’ is deprecated (declared at /root/.node-gyp/6.12.0/include/node/v8.h:8214): Use maybe version [-Wdeprecated-declarations] int fd = info[0]->ToInt32()->Int32Value(); ^ ../src/serialport.cpp: In function ‘Nan::NAN_METHOD_RETURN_TYPE Close(Nan::NAN_METHOD_ARGS_TYPE)’: ../src/serialport.cpp:369:32: warning: ‘v8::Local <v8::int32>v8::Value::ToInt32() const’ is deprecated (declared at /root/.node-gyp/6.12.0/include/node/v8.h:8214): Use maybe version [-Wdeprecated-declarations] baton->fd = info[0]->ToInt32()->Int32Value(); ^ ../src/serialport.cpp: In function ‘Nan::NAN_METHOD_RETURN_TYPE Flush(Nan::NAN_METHOD_ARGS_TYPE)’: ../src/serialport.cpp:480:29: warning: ‘v8::Local <v8::int32>v8::Value::ToInt32() const’ is deprecated (declared at /root/.node-gyp/6.12.0/include/node/v8.h:8214): Use maybe version [-Wdeprecated-declarations] int fd = info[0]->ToInt32()->Int32Value(); ^ ../src/serialport.cpp: In function ‘Nan::NAN_METHOD_RETURN_TYPE Set(Nan::NAN_METHOD_ARGS_TYPE)’: ../src/serialport.cpp:528:29: warning: ‘v8::Local <v8::int32>v8::Value::ToInt32() const’ is deprecated (declared at /root/.node-gyp/6.12.0/include/node/v8.h:8214): Use maybe version [-Wdeprecated-declarations] int fd = info[0]->ToInt32()->Int32Value(); ^ ../src/serialport.cpp: In function ‘Nan::NAN_METHOD_RETURN_TYPE Drain(Nan::NAN_METHOD_ARGS_TYPE)’: ../src/serialport.cpp:585:29: warning: ‘v8::Local <v8::int32>v8::Value::ToInt32() const’ is deprecated (declared at /root/.node-gyp/6.12.0/include/node/v8.h:8214): Use maybe version [-Wdeprecated-declarations] int fd = info[0]->ToInt32()->Int32Value(); ^ ../src/serialport_unix.cpp: In function ‘OpenBatonPlatformOptions* ParsePlatformOptions(const v8::Local<v8::object>&)’: ../src/serialport_unix.cpp:44:109: warning: ‘v8::Local <v8::int32>v8::Value::ToInt32() const’ is deprecated (declared at /root/.node-gyp/6.12.0/include/node/v8.h:8214): Use maybe version [-Wdeprecated-declarations] result->vmin = Nan::Get(options, Nan::New<v8::string>("vmin").ToLocalChecked()).ToLocalChecked()->ToInt32()->Int32Value(); ^ ../src/serialport_unix.cpp:45:111: warning: ‘v8::Local <v8::int32>v8::Value::ToInt32() const’ is deprecated (declared at /root/.node-gyp/6.12.0/include/node/v8.h:8214): Use maybe version [-Wdeprecated-declarations] result->vtime = Nan::Get(options, Nan::New<v8::string>("vtime").ToLocalChecked()).ToLocalChecked()->ToInt32()->Int32Value(); ^ ../src/serialport_poller.cpp: In static member function ‘static Nan::NAN_METHOD_RETURN_TYPE SerialportPoller::New(Nan::NAN_METHOD_ARGS_TYPE)’: ../src/serialport_poller.cpp:86:31: warning: ‘v8::Local <v8::int32>v8::Value::ToInt32() const’ is deprecated (declared at /root/.node-gyp/6.12.0/include/node/v8.h:8214): Use maybe version [-Wdeprecated-declarations] obj->fd_ = info[0]->ToInt32()->Int32Value(); ^ npm WARN enoent ENOENT: no such file or directory, open '/opt/package.json' npm WARN opt No description npm WARN opt No repository field. npm WARN opt No README data npm WARN opt No license field. npm install iobroker.admin --production --prefix /opt npm WARN enoent ENOENT: no such file or directory, open '/opt/package.json' npm WARN opt No description npm WARN opt No repository field. npm WARN opt No README data npm WARN opt No license field. npm install iobroker.js-controller --production --prefix /opt npm WARN deprecated localhost.daplie.me-certificates@1.3.5: this package has been deprecated npm WARN enoent ENOENT: no such file or directory, open '/opt/package.json' npm WARN opt No description npm WARN opt No repository field. npm WARN opt No README data npm WARN opt No license field. Non-critical error: EISDIR: illegal operation on a directory, open '/opt/node_modules/iobroker/lib/../../../iobroker' /opt └─┬ iobroker@1.0.2 └─┬ yargs@7.1.0 ├── camelcase@3.0.0 ├─┬ cliui@3.2.0 │ ├─┬ strip-ansi@3.0.1 │ │ └── ansi-regex@2.1.1 │ └── wrap-ansi@2.1.0 ├── decamelize@1.2.0 ├── get-caller-file@1.0.2 ├─┬ os-locale@1.4.0 │ └─┬ lcid@1.0.0 │ └── invert-kv@1.0.0 ├─┬ read-pkg-up@1.0.1 │ ├─┬ find-up@1.1.2 │ │ ├── path-exists@2.1.0 │ │ └─┬ pinkie-promise@2.0.1 │ │ └── pinkie@2.0.4 │ └─┬ read-pkg@1.1.0 │ ├─┬ load-json-file@1.1.0 │ │ ├── graceful-fs@4.1.11 │ │ ├─┬ parse-json@2.2.0 │ │ │ └─┬ error-ex@1.3.1 │ │ │ └── is-arrayish@0.2.1 │ │ ├── pify@2.3.0 │ │ └─┬ strip-bom@2.0.0 │ │ └── is-utf8@0.2.1 │ ├─┬ normalize-package-data@2.4.0 │ │ ├── hosted-git-info@2.5.0 │ │ ├─┬ is-builtin-module@1.0.0 │ │ │ └── builtin-modules@1.1.1 │ │ ├── semver@5.4.1 │ │ └─┬ validate-npm-package-license@3.0.1 │ │ ├─┬ spdx-correct@1.0.2 │ │ │ └── spdx-license-ids@1.2.2 │ │ └── spdx-expression-parse@1.0.4 │ └── path-type@1.1.0 ├── require-directory@2.1.1 ├── require-main-filename@1.0.1 ├── set-blocking@2.0.0 ├─┬ string-width@1.0.2 │ ├── code-point-at@1.1.0 │ └─┬ is-fullwidth-code-point@1.0.0 │ └── number-is-nan@1.0.1 ├── which-module@1.0.0 ├── y18n@3.2.1 └── yargs-parser@5.0.0 npm WARN enoent ENOENT: no such file or directory, open '/opt/package.json' npm WARN opt No description npm WARN opt No repository field. npm WARN opt No README data npm WARN opt No license field.</v8::int32></v8::string></v8::int32></v8::string></v8::int32></v8::object></v8::int32></v8::int32></v8::int32></v8::int32></v8::int32></v8::string></v8::int32></v8::int32></v8::int32></v8::number></v8::object></v8::int32></v8::object>
-
In das iobroker Verzeichnis wird allerdings nicht eine Datei kopiert.
Das node_modules Verzeichnis liegt jetzt unter /opt/node_modules
Irgendwas stimmt mit den Verzeichnissen nicht. `
Da kommen wir der Sache langssam auf die Schliche.
Ein "iobroker start" sucht dann nämlich im "/opt/iobroker" verzeichnis
das soll es ja auch.
und wenn da nix drin ist stimmt was nicht.
Das Problem wird durch npm 5.x entstanden sein, weswegen vor dessen Nutzung immer gewarnt wird.
Ich nehme an, dass da immer noch irgendetwas von existiert, habe aber zu wenig Linuxkenntnisse.
Warum machst du das Ganze nicht komplett neu?
könnte dir viel Zeit und Nerven sparen.
Gruß
Rainer
-
Dachte ich komme drum herum das OS neu aufzusetzen
Vor allem würde ich gerne verstehen was da passiert ist und wie npm und node funktionieren
Die deinstallation von nodejs hat npm nicht deinstalliert, deswegen wurde vermutlich das Problem auch nicht gelöst.
Ich versuche mal npm zu deinstallieren
-
Ich bin jetzt mit "n 6.5" wieder auf Version 6.5 zurück `
Warum hast du eigentlich v 6.5 genommen? Aktuell ist bei der 6 mindestens 6.12!?
Nicht das ich viel Ahnung habe von den verschiedenen Versionen, aber die sollten doch immer ziemlich aktuell sein. :?
Enrico
-
Gute Frage. Weil ich in irgendeinem Thread von 6.5 gelesen hatte.
Nirgendwo steht welche Version empfohlen wird.
Ich hatte zuerst mit "n stable" die letzte stable version installiert und das war 9.x.
Damit fing das Übel ja an.
Das node bzw. npm System schein recht fragil zu sein
-
Ich hatte zuerst mit "n stable" die letzte stable version installiert `
Und wo war diese Info her?Diesen Befehl kenne ich gar nicht.
In der Doku steht:
wget http://nodejs.org/dist/latest-v6.x/node-v6.12.0-linux-armv6l.tar.gz
Gruß
Rainer
-
Ja, du hast natürlich Recht, das war etwas "leichtsinnig" von mir.
Ich hatte in meiner ioBroker Installation alles geupdated und dann geguckt wie man npm und node updated.
War irgendwie davon ausgegangen dass ich auch hier die aktuelle "stable" Version nehmen kann.
n ist eine Versionskontrolle für node, so wie ich das verstanden habe
mit "n <verison>" kann man zwischen verschiedenen Versionen wechseln.
Naja, ich habe jetzt npm manuell deinstalliert, node ebenfalls und alles nochmal neu installiert.
iobroker scheint zumindest ins richtige Verzeichnis installiert zu werden.
Ich hoffe mein Backup bringt mir später mein altes Setup wieder vollständig zurück</verison>
-
Ja, du hast natürlich Recht, das war etwas "leichtsinnig" von mir. `
ok!aber dann eine solche Aussage:
@stefan0875:An Installation und Update kann scheinbar noch vieles verbessert werden `
ist schon etwas heftig, wenn man "off Label" am offenen Herzen operiert.die aktuelle "stable" Version `
und das irritiert mich am meisten.Ungerade nodejs-Versionen sind immer Entwicklerversionen in Vorbereitung auf die nächste gerade Version, die dann wieder LTS bekommt.
Warum das als stable definiert werden sollte - keine Ahnung?
Gruß
Rainer
-
Ich hatte in meiner ioBroker Installation alles geupdated und dann geguckt wie man npm und node updated. `
Das ist ja auch richtig. Aber an die node-Versionen oder auch npm würde ich nur rangehen, wenn ein Adapter unbedingt ne bestimmte Version braucht!
War irgendwie davon ausgegangen dass ich auch hier die aktuelle "stable" Version nehmen kann. `
Das wäre auch richtig, damit hättest du aber eigentlich nur auf eine 8er Version kommen dürfen, das habe ich sogar schon beim Lesen diverser Beiträge mitbekommen, und ich habe davon auch nicht viel Ahnung!
Enrico
-
So, nach viel Frust funktioniert jetzt alles wieder.
Ich musste tatsächlich npm manuell "hart" deinstallieren (files löschen)
Mein Backup funktioniert auch und alles Adapter und Scripte sind wieder da.
Und der Ikea Tradfri Adapter, den ich vorher nicht zu Laufen bringen konnte und weshalb ich den ganzen Update Stress überhaupt gemacht habe läuft nun ebenfalls.
Jetzt ist endlich Wochenende
-
Danke für das Feedback!
Gruß
Rainer
-
Hey Stefan, wie hast Du denn hart npm deinstalliert? ich habe dasselbe Problem und komm nicht weiter.
Edit: ich musste den js-controller nochmal drüber installieren, nachdem ich auf npm 3.x zurück bin