NEWS
Versionen Update Nodejs und NPM
-
So, letzter Stand:
ich musste beide Befehle ausführen.
nun wird durch
npm start admin.0
zwar der admin gestartet, aber aufrufen kann ich ihn deswegen auch nicht. Mit localhost:8081 kommt nichts.
Dann habe ich ein
iobroker update iobroker upgrade
probiert.
Es wird angezeigt, das kein einziger Adapter installiert ist.
Schön langsam mache ich mir ein wenig Sorgen.
lg
Günther
-
Zusatzinfo:
Da der WAF zu sinken drohte (Konnte ich mit einem selbstgemachten Abendessen abwenden) habe ich nun ein Backup eingespielt.
Nun bin ich also wieder auf dem Ausgangsstand. Alles funktioniert, nur das halt 2 NPM Versionen drauf sind.
Also falls es Ideen gibt, immer her damit.
Vielen Dank
Günther
-
nun wird durch
npm start admin.0
zwar der admin gestartet, aber aufrufen kann ich ihn deswegen auch nicht. Mit localhost:8081 kommt nichts.
Dann habe ich ein
iobroker update iobroker upgrade ```` `
Und nochmal: "npm …" ist kein Befehl zum BETRIEB des ioBroker, sondern zum INSTALLIEREN von Paketen und Adaptern. Korrekt wäre
iobroker start admin.0
Hast du nach der Installation denn den ioBroker selbst auch mal gestartet? Also mit
iobroker start
-
Du könntest jetzt nach Backup nochmal probieren, die lokale npm-Version zu löschen - aber lass "npm prune" weg, das löscht bei dir zu viel.
-
Hallo, sorry hatte mich verschrieben.
Habe den Admin eh mit iobroker Start Admin.0 gestartet.
Ja auch iobroker Start habe ich gemacht. Sogar unter Windows Dienste war ich. (Nur bin ich mit da nicht mehr sicher ob sich der Dienst starten ließ)
Deinen weiteren Tipp schaue ich mir am Abend an.
Danke für die Geduld.
-
Hallo,
Leider hat das nichts gebracht. Die beiden Versionen sind noch vorhanden.
Frage dazu kann ich eigentlich irgendwie die 5.8.0 aus der Path Variable rausnehmen (oder sonstige verstecken) und dann ein Upgrade durchführen? Dann habe ich zwar noch immer 2 Versionen, aber immerhin 2mal die gute. Oder stelle ich mir das zu einfach vor?
Lg
Günther
-
Global scheint ja die korrekte Version (5.8.0) installiert zu sein. Den Pfad zur lokalen Version fügt npm beim Aufruf automatisch ein, den kannst du nicht so einfach entfernen. Den müsste ioBroker bei der Befehlsausführung selbst aktiv aus dem Pfad entfernen. Ich hab das auch bei der Erstinstallation schon mal eingebaut, aber das scheint bei dir nicht zu greifen. Komme aktuell auch nicht dazu, das zu optimieren. Vielleicht kommt ja @Bluefox oder @Apollon77 dazu.
Nur um sicher zu gehen, dass wir keinen Geist jagen: Schau mal ob du im ioBroker-Verzeichnis oder Unterordnern im node_modules-Ordner einen Ordner npm findest. Wenn ja, schau in der package.json davon nach, welche Version es ist.
Zusätzlich bitte über die Kommandozeile im ioBroker-Verzeichnis "node" ausführen, dann folgendes eingeben
require.resolve("npm")
Es sollte ein Fehler kommen. Danach kannst du den Befehl mit Strg+C, Strg+C beenden.
-
Hallo,
also:
hier das IOBroker Verzeichnis
`Verzeichnis von C:\ioBroker 16.04.2018 19:10` <dir> `. 16.04.2018 19:10` <dir> `.. 18.03.2018 14:44 20 .npmrc 27.03.2018 20:26 984 5.8.0 08.10.2017 09:44` <dir> `backups 08.04.2018 16:53` <dir> `cache 21.03.2016 21:20 74 controller.js 14.04.2018 02:53` <dir> `daemon 21.03.2016 21:05` <dir> `etc 21.03.2016 21:20 892 install.js 18.03.2018 14:44 74 iobroker 18.03.2018 15:04` <dir> `iobroker-data 21.03.2016 21:20 67 iobroker.bat 18.03.2018 14:44 63 iobroker.cmd 16.04.2018 02:14 <dir> log 16.04.2018 19:10 <dir> node_modules 16.04.2018 19:10 93 package.json 12.04.2018 19:42 70 package.json.bak 21.03.2016 21:20 1.655 serviceIoBroker.bat 12.04.2018 19:40 40 test.js 21.03.2016 21:20 436 uninstall.js 12 Datei(en), 4.468 Bytes 9 Verzeichnis(se), 959.502.278.656 Bytes frei Im Ordner node_modules gibt es einen Ordner der folgendermaßen heißt. Keinen Ordner der nur NPM heißt.
npm-run-path
Inhalt der package.json:
{
"_from": "npm-run-path@^2.0.0",
"_id": "npm-run-path@2.0.2",
"_inBundle": false,
"_integrity": "sha1-NakjLfo11wZ7TLLd8jV7GHFTbF8=",
"_location": "/npm-run-path",
"_phantomChildren": {},
"_requested": {
"type": "range",
"registry": true,
"raw": "npm-run-path@^2.0.0",
"name": "npm-run-path",
"escapedName": "npm-run-path",
"rawSpec": "^2.0.0",
"saveSpec": null,
"fetchSpec": "^2.0.0"
},
"_requiredBy": [
"/execa"
],
"_resolved": "https://registry.npmjs.org/npm-run-path/-/npm-run-path-2.0.2.tgz",
"_shasum": "35a9232dfa35d7067b4cb2ddf2357b1871536c5f",
"_spec": "npm-run-path@^2.0.0",
"_where": "C:\ioBroker\node_modules\execa",
"author": {
"name": "Sindre Sorhus",
"email": "sindresorhus@gmail.com",
"url": "sindresorhus.com"
},
"bugs": {
"url": "https://github.com/sindresorhus/npm-run-path/issues"
},
"bundleDependencies": false,
"dependencies": {
"path-key": "^2.0.0"
},
"deprecated": false,
"description": "Get your PATH prepended with locally installed binaries",
"devDependencies": {
"ava": "",
"xo": ""
},
"engines": {
"node": ">=4"
},
"files": [
"index.js"
],
"homepage": "https://github.com/sindresorhus/npm-run-path#readme",
"keywords": [
"npm",
"run",
"path",
"package",
"bin",
"binary",
"binaries",
"script",
"cli",
"command-line",
"execute",
"executable"
],
"license": "MIT",
"name": "npm-run-path",
"repository": {
"type": "git",
"url": "git+https://github.com/sindresorhus/npm-run-path.git"
},
"scripts": {
"test": "xo && ava"
},
"version": "2.0.2",
"xo": {
"esnext": true
}
}Der Befehl unter node bringt folgenden Fehler: ``` <code>> require.resolve("npm") Error: Cannot find module 'npm' at Function.Module._resolveFilename (module.js:547:15) at Function.resolve (internal/module.js:18:19)[code][/code]</code> ``` lg Günther</dir> </dir>` </dir> </dir> </dir> </dir> </dir> </dir> </dir> ```
-
Ok, und findest du in "node_modules.bin" eine Datei "npm"?
Bzgl. deines Ordnerinhalts verwundert mich etwas die Datei 5.8.0 - möglicherweise npm mit falschem Befehl installiert?
Und die controller.js - aber die scheint ein Überbleibsel von anno dazumal zu sein.
-
Hallo,
Nein im node_modules.bin befindet sich keine Datei mit dem Namen npm.
Bezüglich der 32 und der 64 Bit Version? Wie könnte ich das checken? In der Systemsteuerung findet man nichts dazu.
Lg
Günther
-
Nein im node_modules.bin befindet sich keine Datei mit dem Namen npm. `
Dann sollte zumindest keine lokale Version installiert sein. Ich bin ehrlich gesagt etwas ratlos…
-
Also ich finde die nodejs Installation nur unter dem 64 Bit Pfad. Unter X86 ist da nix.
Lg
Günther
-
Nabend,
ich klinke mich hier mal ein denn ich habe das gleiche bzw. ein ähnliches Problem, auch auf einem Windows (10) -Rechner. Habe auch npm Version 5.8.0 installiert und bekomme im Admin 5.6.0 angezeigt und bei den verfügbaren Versionen der Adapter npm error.
Im Gegensatz zu Jeeper.at habe ich allerdings tatsächlich eine zweite npm-Version zusätzlich installiert.
Es gibt einen Installationsordner C:\iobroker, wohin ich seinerzeit installiert habe und einen Ordner C:\Programme\nodejs, in letzterem auch die Unterverzeichnisse \node_modules\npm. In diesem zusätzlichem Pfad steht in package.json npm-version 5.6.0 und in der eigentlich ursprünglichen Installation C:\iobroker\node_modules\npm die korrekte npm-version 5.8.0. (Der Text im Editor unterscheidet auch sonst sehr in den unterschiedlichen package.json-Dateien, was hoffentlich keine Rolle spielt..!?)
Keine Ahnung, wie ich das verzapft habe.
Könnte ich diesen überflüssigen Ordner irgendwie in den anderen verschieben und dann nochmal npm udaten oder kann ich den Ordner einfach löschen oder kann es sein, dass irgendwelche Verknüpfungen dann ins Leere laufen und die ganze Installation dann hin ist?
Bin für jede Hilfe dankbar!
Grüße, Rob
-
-
Wie bereits in anderen Threads besprochen wird aus dem Grund, dass es mit npm5.x massive Probleme gegeben hatte immer noch nodejs 6.x mit npm 3.x empfohlen.
Der große Bug in npm 5.x wurde in der Version 5.7.1 gefixt. Daraufhin wurde im Controller eine Überprüfung der Versionen eingebaut mit einer entsprechenden Meldung was zu tun ist.
Diese greift aber nur bei Neuinstallationen
Leider wird node v8 immer noch mit npm 5.6 "ausgeliefert", daher ist es immer noch keine offizielle Empfehlung.
node v9 ist wie alle ungeraden Versionen eine Entwicklerversion aus der irgendwann die Version 10.x entstehen wird und sollte nur mit äußerster Vorsicht und auf eigenes Risiko installiert werden. Meines Wissens kommt die aber auch mit dem problematischen npm 5.6.0
Hoffe etwas Lich ins Dunkel gebracht zu haben
Gruß
Rainer
-
Was mir auffällt von wo habt ihr die hohen npm Versionen? Bei nodejs ist die höchste verfügbare npm die 5.6.0 die mit installiert wird! `
Das ist nicht die höchste verfügbare, sonst hätten wir keine höheren VersionenUm die mitgelieferte auf die neueste stabile Version zu heben, genügt ein
npm i -g npm
bzw. unter Linux mit sudo.
> Welches Pakt ist dann richtig?
Immer nur die geraden Versionen von NodeJS installieren. Empfohlen wird aktuell 6.x.8.x bringt npm5 mit sich. Das wird zwar unterstützt, ist aber recht eigen, was Berechtigungen angeht. Hier ist noch etwas Arbeit an ioBroker nötig, damit unbedarfte User keine Probleme bekommen.
-
In der http://www.iobroker.net/docu/?page_id=5106&lang=de#Installation_Nodejs der Doku steht sicherheitshalber noch:
` > ——————————————————————————————–Hinweis: Diese Anleitung bezieht sich auf nodejs 6.x
Die Nutzung von Nodejs 8.x wäre ebenfalls möglich (dazu in Schritt 4.1 die 6 gegen eine 8 austauschen), jedoch muss das dort mitgelieferte npm 5.x nach der Installation unbedingt auf v4.x downgegradet werden mit
sudo npm install -g npm@4
npm 5.x enthält noch einen Bug, der bei ioBroker zu massiven Problemen führt.
——————————————————————————————– `
inzwischen sind wir etwas weiter und "erlauben" die Installation von nodejs 8.x auch mit npm 5.7.1 oder höher.
Wie bereits oben beschrieben, wird dies bei einer Installation von ioBroker auf nodejs v8 mit einer npm-Version <5.7.1 auch nach Abbruch der Installation in einer Meldung ausgegeben.
Gruß
Rainer
-
Mit Windows habe ich mich noch nie befasst, weiß aber auch, dass es einige Linux Distributionen gibt, bei denen eine (teilweise uralte) nodejs-Version bereits drin ist.
Ähnlich kann es bei Windows sein.
Mal sehen, wie wir das in den Griff bekommen, ohne viele redundante Informationen zu haben, die gepflegt werden müssen.
Gruß
Rainer
-
Ähnlich kann es bei Windows sein. `
Mir ist bisher noch keine (frische) Windows-Installation untergekommen, bei der NodeJS installiert war. -
Dann habe ich micht fals ausgedrückt, weil ich schreibfaul bin.
bei Linux gibt es oft eine Version von nodejs im Repo und mit einem Befehl wie apt get install nodejs installiert.
Das können aber auch uralte Versionen sein.
Da kann ich mir vorstellen, dass es so etwas auch unter Windows beben könnte und man nicht gerade die aktuellste Version installiert.
Der Konjunktiv deutet auf Unwissen!
Gruß
Rainer