NEWS
Test ioBroker unter Windows installieren - 2023 Edition
-
@gaspode
noch eine andere Frage - warum wird beim Update über die Konsole NPM 8.14.0 angezeigt, wenn beim Betrachten über den Admin NPM auf dem Stand 9.8.1 ist (wurde zusammen mit Node durch den Win Installer auf die entsprechenden Versionsstände gehoben) -
@jb_sullivan said in Test ioBroker unter Windows installieren - 2023 Edition:
warum wird beim Update über die Konsole NPM 8.14.0 angezeigt, wenn beim Betrachten über den Admin NPM auf dem Stand 9.8.1 ist
Das ist eine verdammt gute Frage, auf die ich im Moment nur eine halbe Antwort habe:
Anscheinend, weil das ioBroker node.js command Window als Admin gestartet wurde. Startet man das Node.js Command Window aus dem Startmenü als Admin:
npm -v 9.3.0 node -v v18.18.2
Startet man es als normaler User:
npm -v 9.8.1 node -v v18.18.2
Warum das so ist kann ich im Moment nicht sagen, bisher hat das immer gepasst. Mal sehen, ob ich morgen was raus finde.
-
Ich weiß nicht warum, aber bei mir war es so, dass irgendwann einmal durch eine (wahrscheinlich von mir manuell ausgeführte Aktion) npm zusätzlich als globales Node.js Modul installiert war. Wie es dazu kam, kann ich nicht sagen, laut Datum des Ordners war das im Januar!? Ich vermute aber, das npm Modul wurde als Abhängigkeit bei irgend einer globalen Node.js Modul-Installation mit installiert.
Die gute Nachricht: Dieser Fall lässt sich leicht wieder gerade biegen:
Erst mal prüfen, ob das der Fall ist:
ioBroker Command Line aus dem Startmenü öffnen und dort eingeben:
npm ls -g
Wenn im Ergebnis npm auftaucht, dann hast du eine (ungewollte) globale Installation des Node.js npm Moduls, z.B.:
c:\iobroker> npm ls -g -- npm@9.3.0
In diesem Fall einfach global deinstallieren:
npm r -g npm
Sollten noch weitere Module global installiert sein, sollten die auch anschließend noch laufen. Wobei es eigentlich keine global installierten Module geben sollte.
-
*** Welcome to ioBroker. ***
*** Type 'iob help' for list of instructions. ***
*** For more help see ***
*** https://github.com/ioBroker/ioBroker.docs ***
Your environment has been set up for using Node.js 18.18.2 (x64) and npm.
C:\SmartHome>npm ls -g
C:\Users\Sigi\AppData\Roaming\npm
`-- (empty)C:\SmartHome>
-
@sigi234
Du bekommst aber auch die korrekte npm Version mit npm -v angezeigt, oder? -
-
@sigi234 said in Test ioBroker unter Windows installieren - 2023 Edition:
Ja
9.8.1OK, Danke. Das bestätigt ja nochmal meine Vermutung.
-
@gaspode sagte in Test ioBroker unter Windows installieren - 2023 Edition:
@sigi234 said in Test ioBroker unter Windows installieren - 2023 Edition:
Ja
9.8.1OK, Danke. Das bestätigt ja nochmal meine Vermutung.
Das hat damit aber nicht zu tun? Oder? Ist Neu bei mir.
Zeit Differenz -
@sigi234 said in Test ioBroker unter Windows installieren - 2023 Edition:
Das hat damit aber nicht zu tun? Oder?
Nee.
Edit:
Ist hier zwar OT, aber bei mir scheint das nur im Firefox (falsch) angezeigt zu werden. Chrome und Edge zeigen das nicht. Ist das bei dir auch so?
Nochmal Edit:
F5 ist dein Freund. Aktualisierungsproblem, s. hier: https://forum.iobroker.net/post/1056146 -
@gaspode sagte in Test ioBroker unter Windows installieren - 2023 Edition:
Bekommst du die Fehlermeldung mit dem "Windows Script Host" auch? Das hab ich bei mir noch nie gesehen.
Mein Vorgehen ist seid "ewig" schon wie oben beschrieben, daher gibt/gab es keine Fehlermeldungen mehr. Mache auch das meiste "von Hand" über die Konsole. Zuvor beende ich aber ioBroker. Ich nutze nicht den Installer
@uwerlp said in Test ioBroker unter Windows installieren - 2023 Edition:
Beim ersten Aufruf wird noch gemeldet das ioBroker läuft, aber beim zweiten sollte dann die Meldung kommen das ioBroker nicht läuft.
Ich sehe gerade: Das habe ich mitunter auch. allerdings keine weiteren Fehler, wenn ich CLI Befehle absetze. Und es passiert bei mir auch, wenn kein Node Prozess mehr läuft. Das zweite "iob status" liefert dann aber den korrekten Output. Das hatte ich vor einiger Zeit so definitiv noch nicht. Kann es sein, dass das mit einer neueren Node Version oder Controller 5.x rein gekommen ist?
Hatte ich zumindes schon mit Controller 4.x, bei 3.x weis ich es nicht mehr.
Fehler habe ich auch keine...- Der erste Aufruf nach dem Stoppen von ioBroker von "iob status" liefert (zumindest häufig, wenn nicht immer) fälschlicherweise "iobroker is running on this host". Der zweite Aufruf funktioniert in der Regel.
Der erste iob status bringt bei mir immer eine Laufmeldung - auch wenn alle Norde.js Tasks beendet sind.
- Die Windows Meldung "Windows Script Host" tritt normalerweise auf, wenn man versucht ein .js File direkt auszuführen, dann wird das File direkt an den Windows Script Interpreter übergeben, der nix damit anfangen kann. Warum das bei iob Befehlen passieren kann, ist mir ein Rätsel. Hat das sonst noch jemand?
Möglichweise hängt das mit dem zuvor ausgeführten iob stop zusammen.
- Selten werde zügig alle Node.js Tasks beendet
- Öfter dauert es bis all Node.js beendet sind, wenn dann nur noch wenige Node.js da sind kommt es auch schon mal vor das es wieder mehr werden.
- Seltener werden keine oder nur wenige Node.js beendet, dann hilft ein iob stop all
-
@gaspode sagte in Test ioBroker unter Windows installieren - 2023 Edition:
npm ls -g
Ergebnis bei mir ist wie folgt:
Your environment has been set up for using Node.js 18.18.2 (x64) and npm. C:\iobroker\GLT>npm ls -g C:\Users\glt\AppData\Roaming\npm +-- node-red@1.3.5 `-- npm@8.14.0 C:\iobroker\GLT>
Zum globalen deinstallieren muss ioB gestoppt sein, oder ist diese falsche NPM Version unabhängig von der NPM Version des ioBroker zu betrachten?
Das muss auch ein überbleibsel einer alten Installation sein, denn zum einen ist das Verzeichnis vom 17.7.2022 und zum anderen liegt sie unter
c:\Users\glt\AppData\Roaming\npm\node_modules\npm\
was ja nicht dem ioBroker Standard entspricht. -
@jb_sullivan said in Test ioBroker unter Windows installieren - 2023 Edition:
Zum globalen deinstallieren muss ioB gestoppt sein, oder ist diese falsche NPM Version unabhängig von der NPM Version des ioBroker zu betrachten?
NPM ist ja nur der Paket Manager, der nach meinem Verständnis nur während Installationen bzw Aktualisierungen von Node.js Modulen läuft. Also Nein. ioBroker muss dafür nicht gestoppt werden.
-
Ich habe jetzt die "falsche/alte" npm global Version deinstallieren lassen, iob.bat umbenannt und dann nochmal den Windows Installer gestartet.
Nun wurde auch der Fixer über den Installer erfolgreich ausgeführt, ohne das es zu einem Windows Skript Error gekommen ist.
Nach dem Fixer ist die ioB.bat Datei ein paar Kilobyt größer geworden.
-
@jb_sullivan said in Test ioBroker unter Windows installieren - 2023 Edition:
Ich habe jetzt die "falsche/alte" npm global Version deinstallieren lassen, iob.bat umbenannt und dann nochmal den Windows Installer gestartet.
Bei Verwendung vom Installer musst du nix umbenennen, der macht das selbst. Und iob.bat schon gar nicht, sondern iobroker.bat.
@jb_sullivan said in Test ioBroker unter Windows installieren - 2023 Edition:
Nach dem Fixer ist die ioB.bat Datei ein paar Kilobyt größer geworden.
Öhm, iob.bat ist eine Batch Datei mit einer Größe von 921 Byte. Wie groß ist die denn bei dir!?
-
Ja, jetzt ist sie921 byte groß, vorher war sie 819 byte groß.
Hier nur mal so zum Vergleich der Inhalt der beiden "Versionen". Ich kann aber ehrlich gesagt keinen Unterschied entdecken.
Alt (819byte)
@echo off if %1==fix ( npx @iobroker/fix ) else ( if exist serviceIoBroker.bat ( if %1==start ( if [%2]==[] ( call serviceIoBroker.bat start ) else ( node node_modules/iobroker.js-controller/iobroker.js %1 %2 %3 %4 %5 %6 %7 %8 ) ) else ( if %1==stop ( if [%2]==[] ( call serviceIoBroker.bat stop ) else ( node node_modules/iobroker.js-controller/iobroker.js %1 %2 %3 %4 %5 %6 %7 %8 ) ) else ( node node_modules/iobroker.js-controller/iobroker.js %1 %2 %3 %4 %5 %6 %7 %8 ) ) ) else ( node node_modules/iobroker.js-controller/iobroker.js %1 %2 %3 %4 %5 %6 %7 %8 ) )
Nach dem Fixer Durchlauf
@echo off if [%1]==[fix] ( npx @iobroker/fix ) else ( if exist serviceIoBroker.bat ( if [%1]==[start] ( if [%2]==[] ( call serviceIoBroker.bat start ) else ( node node_modules/iobroker.js-controller/iobroker.js %* ) ) else ( if [%1]==[stop] ( if [%2]==[] ( call serviceIoBroker.bat stop ) else ( node node_modules/iobroker.js-controller/iobroker.js %* ) ) else ( if [%1]==[restart] ( if [%2]==[] ( call serviceIoBroker.bat restart ) else ( node node_modules/iobroker.js-controller/iobroker.js %* ) ) else ( node node_modules/iobroker.js-controller/iobroker.js %* ) ) ) ) else ( node node_modules/iobroker.js-controller/iobroker.js %* ) )
-
@jb_sullivan said in Test ioBroker unter Windows installieren - 2023 Edition:
Ich kann aber ehrlich gesagt keinen Unterschied entdecken.
Es gibt ihn aber
Die alte Variante ist tatsächlich vor einiger Zeit durch die neue ersetzt werden und wurde jetzt vom Fixer aktualisiert.
Schön, dass jetzt alles läuft, wie es soll.
-
@Gaspode Vielen Dank nochmals für den prima Installer.
Habe heute nodejs auf 18 upgedatet und das lief smooth durch. War früher immer eine schwierige Sache.
ioBroker lief wieder hoch und selbst rflink, den ich bei der Erstinstallation händisch bauen mußte läuft immer noch.Der Fixer hat zwar Fehler gemeldet, aber das ist nicht wirklich schlimm solange alles läuft
npm@6.14.17 C:\ioBroker\node_modules\npm node:child_process:965 throw err; ^ Error: Command failed: npm x --yes @iobroker/jsonltool@latest at checkExecSyncError (node:child_process:890:11) at execSync (node:child_process:962:15) at Object.<anonymous> (C:\Users\JS\AppData\Local\npm-cache\_npx\41f6637076e42190\node_modules\@iobroker\fix\lib-npx\install.js:71:17) at Module._compile (node:internal/modules/cjs/loader:1356:14) at Module._extensions..js (node:internal/modules/cjs/loader:1414:10) at Module.load (node:internal/modules/cjs/loader:1197:32) at Module._load (node:internal/modules/cjs/loader:1013:12) at Function.executeUserEntryPoint [as runMain] (node:internal/modules/run_main:128:12) at node:internal/main/run_main_module:28:49 { status: 1, signal: null, output: [ null, null, null ], pid: 10804, stdout: null, stderr: null } Node.js v18.19.0 npm notice npm notice New patch version of npm available! 10.2.3 -> 10.2.5 npm notice Changelog: <https://github.com/npm/cli/releases/tag/v10.2.5> npm notice Run `npm install -g npm@10.2.5` to update! npm notice
-
@klassisch
Danke für die Rückmeldung. Hmm, das mit dem Fixer ist seltsam. Ich hab ihn hier gerade mal durchlaufen lassen und keine Fehler gehabt. Der Installer ruft den ja auch nur auf ...Hast du mal das vollständige Log?
-
@gaspode
Meine Installation hat halt eine lange Vorgeschichte. Auf einem Linux SBC gestartet, dann per @Stabilostick Installer auf Win, mehrfach upgedatet dann mit @Gaspode Installer installiert und mittlerweile damit auch upgedatet. Kann schon sein, daß da etwas Unebenes enthalten ist. Aber bisher scheint alles zu laufen.
InstallIoBrokerFix:Npm prefix path does NOT exist: C:\Users\JS\AppData\Roaming\npm Try to create it. Success! ---------------------------------------------------------------------------------------------------- Windows installation starting... (fixing = true) NPM version: 10.2.3 Usage: npm <command> where <command> is one of: access, adduser, audit, bin, bugs, c, cache, ci, cit, clean-install, clean-install-test, completion, config, create, ddp, dedupe, deprecate, dist-tag, docs, doctor, edit, explore, fund, get, help, help-search, hook, i, init, install, install-ci-test, install-test, it, link, list, ln, login, logout, ls, org, outdated, owner, pack, ping, prefix, profile, prune, publish, rb, rebuild, repo, restart, root, run, run-script, s, se, search, set, shrinkwrap, star, stars, start, stop, t, team, test, token, tst, un, uninstall, unpublish, unstar, up, update, v, version, view, whoami npm <command> -h quick help on <command> npm -l display full usage info npm help <term> search for help on <term> npm help npm involved overview Specify configs in the ini-formatted file: C:\Users\JS\.npmrc or on the command line via: npm <command> --key value Config info can be viewed via: npm help config npm@6.14.17 C:\ioBroker\node_modules\npm node:child_process:965 throw err; ^ Error: Command failed: npm x --yes @iobroker/jsonltool@latest at checkExecSyncError (node:child_process:890:11) at execSync (node:child_process:962:15) at Object.<anonymous> (C:\Users\JS\AppData\Local\npm-cache\_npx\41f6637076e42190\node_modules\@iobroker\fix\lib-npx\install.js:71:17) at Module._compile (node:internal/modules/cjs/loader:1356:14) at Module._extensions..js (node:internal/modules/cjs/loader:1414:10) at Module.load (node:internal/modules/cjs/loader:1197:32) at Module._load (node:internal/modules/cjs/loader:1013:12) at Function.executeUserEntryPoint [as runMain] (node:internal/modules/run_main:128:12) at node:internal/main/run_main_module:28:49 { status: 1, signal: null, output: [ null, null, null ], pid: 10804, stdout: null, stderr: null } Node.js v18.19.0 npm notice npm notice New patch version of npm available! 10.2.3 -> 10.2.5 npm notice Changelog: <https://github.com/npm/cli/releases/tag/v10.2.5> npm notice Run `npm install -g npm@10.2.5` to update! npm notice
-
@klassisch
Danke. Hmm, komisch. Zunächst will der Fixer die DB komprimieren, das macht er mitnpm x --yes @iobroker/jsonltool@latest
Und das geht bei dir anscheinend in die Hose. Ich hab aber keine Ahnung, warum.
Wenn du Lust hast, kannst du ja mal ein ioBroker Command Window auf machen und gucken, was
npm ls
und
npm -g ls
ausspucken.
Du könntest das Komprimieren auch mal manuell testen mit
iob stop cd iobroker-data npm x --yes @iobroker/jsonltool@latest cd .. iob start
Evtl. mit dem manuellen Komprimieren mal warten, was die beiden ersten Befehle ausspucken, evtl. sieht man da was auffälliges. Vielleicht kann @apollon77 auch seinen Senf dazu geben, ob das manuelle Komprimieren schaden kann ...