NEWS
[How-to] Node.js für ioBroker richtig updaten
-
Hallo, ich könnte mal Hilfe brauchen... bekomme mein nodejs bzw. NPM nicht sauber geupdated.
Hab jetzt alle Beitrage hier durchgelesen und alles mögliche probiert was hier empfohlen wurde.
Aber bekomme immer noch folgende Fehlermeldung:pi@iobroker:~ $ pi@iobroker:~ $ which nodejs && nodejs -v && which node && node -v && which npm && npm -v && apt policy nodejs /usr/bin/nodejs v18.17.1 /usr/bin/node v18.17.1 /usr/bin/npm /usr/lib/node_modules/npm/lib/cli.js:35 throw err ^ TypeError: Class extends value undefined is not a constructor or null at Object.<anonymous> (/usr/lib/node_modules/npm/node_modules/fs-minipass/li b/index.js:136:4) at Module._compile (node:internal/modules/cjs/loader:1256:14) at Module._extensions..js (node:internal/modules/cjs/loader:1310:10) at Module.load (node:internal/modules/cjs/loader:1119:32) at Module._load (node:internal/modules/cjs/loader:960:12) at Module.require (node:internal/modules/cjs/loader:1143:19) at require (node:internal/modules/cjs/helpers:121:18) at Object.<anonymous> (/usr/lib/node_modules/npm/node_modules/cacache/lib/co ntent/read.js:4:13) at Module._compile (node:internal/modules/cjs/loader:1256:14) at Module._extensions..js (node:internal/modules/cjs/loader:1310:10) Node.js v18.17.1 pi@iobroker:~ $
-
@m0uh Ich mache das eit langer Zeit ohne Probleme nach einer Anleitung aus der "Chip"
Hier wird allerdings der gesamte RP auf den neusten Stand gebracht.
1: Öffnen Sie die Konsole ihres Raspberry Pi. (Putty o.ä.)
2: Geben Sie den Befehl "sudo apt-get update" ein und führen Sie ihn aus.
3: Im Anschluss geben Sie den Befehl "sudo apt-get upgrade" ein und bestätigen mit "Enter".
4: Haben Sie genügend freien Speicherplatz, führen Sie das Upgrade mit "Y" aus.
5: Sobald das Update erfolgreich war, sollten Sie Ihren Raspberry Pi mit dem Befehl "sudo reboot" neustarten.
Link TextVielleicht hilft das
Michael -
-
Das funktioniert aber nur, wenn die Grundeinstellung sauber ist. Und ein Upgrade auf eine höhere Version funktioniert damit auch nicht.
-
@thomas-braun said in [How-to] Node.js für ioBroker richtig updaten:
sudo apt install --reinstall nodejs
pi@iobroker:~ $ apt policy nodejs nodejs: Installed: 18.17.1-deb-1nodesource1 Candidate: 18.17.1-deb-1nodesource1 Version table: *** 18.17.1-deb-1nodesource1 500 500 https://deb.nodesource.com/node_18.x bullseye/main arm64 Packages 100 /var/lib/dpkg/status 12.22.12~dfsg-1~deb11u4 500 500 http://security.debian.org/debian-security bullseye-security/main arm64 Packages 12.22.12~dfsg-1~deb11u3 500 500 http://deb.debian.org/debian bullseye/main arm64 Packages pi@iobroker:~ $ sudo apt install --reinstall nodejs Reading package lists... Done Building dependency tree... Done Reading state information... Done 0 upgraded, 0 newly installed, 1 reinstalled, 0 to remove and 0 not upgraded. Need to get 0 B/28.1 MB of archives. After this operation, 0 B of additional disk space will be used. (Reading database ... 102217 files and directories currently installed.) Preparing to unpack .../nodejs_18.17.1-deb-1nodesource1_arm64.deb ... Unpacking nodejs (18.17.1-deb-1nodesource1) over (18.17.1-deb-1nodesource1) ... Setting up nodejs (18.17.1-deb-1nodesource1) ... Processing triggers for man-db (2.9.4-2) ... pi@iobroker:~ $ which nodejs && nodejs -v && which node && node -v && which npm && npm -v && apt policy nodejs /usr/bin/nodejs v18.17.1 /usr/bin/node v18.17.1 /usr/bin/npm /usr/lib/node_modules/npm/lib/cli.js:35 throw err ^ TypeError: Class extends value undefined is not a constructor or null at Object.<anonymous> (/usr/lib/node_modules/npm/node_modules/fs-minipass/lib/index.js:136:4) at Module._compile (node:internal/modules/cjs/loader:1256:14) at Module._extensions..js (node:internal/modules/cjs/loader:1310:10) at Module.load (node:internal/modules/cjs/loader:1119:32) at Module._load (node:internal/modules/cjs/loader:960:12) at Module.require (node:internal/modules/cjs/loader:1143:19) at require (node:internal/modules/cjs/helpers:121:18) at Object.<anonymous> (/usr/lib/node_modules/npm/node_modules/cacache/lib/content/read.js:4:13) at Module._compile (node:internal/modules/cjs/loader:1256:14) at Module._extensions..js (node:internal/modules/cjs/loader:1310:10) Node.js v18.17.1 pi@iobroker:~ $
leider keine Abhilfe. Hab ich schon mehrfach probiert.
-
@thomas-braun sagte in [How-to] Node.js für ioBroker richtig updaten:
Das funktioniert aber nur, wenn die Grundeinstellung sauber ist. Und ein Upgrade auf eine höhere Version funktioniert damit auch nicht.
Doch das Upgrade funktioniert!
-
@michihorn NEIN, innerhalb, sprich minor version ja, ein upgrade auf eine nächst höhere major version aber nicht
-
Mal jemals npm von Hand angepackt und upgedatet?
-
@michihorn sagte in [How-to] Node.js für ioBroker richtig updaten:
nach einer Anleitung aus der "Chip"
von wann ist diese Anleitung denn?
@michihorn sagte in [How-to] Node.js für ioBroker richtig updaten:
den Befehl "sudo apt-get update"
benutzt man eigentlich schon länger nicht mehr.
apt-get
wurde durch ein einfachesapt
ersetzt (grob gesagt) -
@thomas-braun Nein, hab alle Updates immer nach der Anleitung hier im Forum gemacht.
-
-
@thomas-braun Selber Fehler
pi@iobroker:~ $ sudo -H -u iobroker npm cache clean --force /usr/lib/node_modules/npm/lib/cli.js:35 throw err ^ TypeError: Class extends value undefined is not a constructor or null at Object.<anonymous> (/usr/lib/node_modules/npm/node_modules/fs-minipass/lib/index.js:136:4) at Module._compile (node:internal/modules/cjs/loader:1256:14) at Module._extensions..js (node:internal/modules/cjs/loader:1310:10) at Module.load (node:internal/modules/cjs/loader:1119:32) at Module._load (node:internal/modules/cjs/loader:960:12) at Module.require (node:internal/modules/cjs/loader:1143:19) at require (node:internal/modules/cjs/helpers:121:18) at Object.<anonymous> (/usr/lib/node_modules/npm/node_modules/cacache/lib/content/read.js:4:13) at Module._compile (node:internal/modules/cjs/loader:1256:14) at Module._extensions..js (node:internal/modules/cjs/loader:1310:10) Node.js v18.17.1
-
@m0uh sagte in [How-to] Node.js für ioBroker richtig updaten:
Mach einen eigenen Thread auf und gib da mal die Ausgabe von
iob diag
rein. Dürfte zwar sehr zerfetzt aussehen, aber sei's drum.
-
-
@thomas-braun Installation-Setup wird als veraltet angemerkt. Gibt es da was Neues?
Hab es in Deiner Signatur nachvollzogen. ok.
prox@jarvisV313:~$ curl -fsSL https://deb.nodesource.com/setup_18.x | sudo -E bash - ================================================================================ ▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓ ================================================================================ SCRIPT DEPRECATION WARNING This script, located at https://deb.nodesource.com/setup_X, used to install Node.js is deprecated now and will eventually be made inactive. Please visit the NodeSource distributions Github and follow the instructions to migrate your repo. https://github.com/nodesource/distributions The NodeSource Node.js Linux distributions GitHub repository contains information about which versions of Node.js and which Linux distributions are supported and how to install it. https://github.com/nodesource/distributions SCRIPT DEPRECATION WARNING ================================================================================ ▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓ ================================================================================ TO AVOID THIS WAIT MIGRATE THE SCRIPT Continuing in 60 seconds (press Ctrl-C to abort) ...
-
@mcu sagte in [How-to] Node.js für ioBroker richtig updaten:
Hab es in Deiner Signatur nachvollzogen. ok.
Ja, da hab ich es schon drin. Und im 'Beta-iob-diag' ist es auch drin.
Ich wollte mir die Tage dann vielleicht auch den iob installer mal anschauen und einen PR schreiben. -
@thomas-braun Wie kann man denn z.B. nodejs 20 sperren?
Achtung, wenn das Repo mit einer höheren Version nicht deaktiviert wird kommt beim nächsten apt update / apt upgrade natürlich die höhere Version mit.
-
Einfach keine Zeile für nodejs@20 anlegen.
Die Versionszweige kommen immer noch aus separaten Einträgen.ODER man pinnt ein nodejs@18 fest. Ging per 'apt pinning'
-
Also das Installieren hat sich geändert.
Man soll das Script nicht mehr benutzen:Alt:
curl -sL https://deb.nodesource.com/setup_18.x | sudo -E bash - sudo apt-get install -y nodejs
Neu
sudo apt install -y ca-certificates curl gnupg curl -fsSL https://deb.nodesource.com/gpgkey/nodesource-repo.gpg.key | sudo gpg --dearmor -o /etc/apt/keyrings/nodesource.gpg NODE_MAJOR=18 echo "deb [signed-by=/etc/apt/keyrings/nodesource.gpg] https://deb.nodesource.com/node_$NODE_MAJOR.x nodistro main" | sudo tee /etc/apt/sources.list.d/nodesource.list sudo apt-get update && sudo apt-get install nodejs -y
MOD-EDIT: Code korrigiert!
quelle: https://deb.nodesource.com/
mit
NODE_MAJOR=18
kann man die Version bestimmen.Das hier ist aber nur mit Bookworm getestet. NPM wird nur mit Version 20 mitinstalliert. Unter Buster ist bei mir eine 12 statt der 18 installiert worden.
-
@plchome-0 sagte in [How-to] Node.js für ioBroker richtig updaten:
Man muss nun das "Key verfahren "benutzen:
Nee, das ist nicht die Änderung, das wurde 'schon immer' verwendet.
Die Änderung ist im wesentlichen, das nicht mehr für jedes Distributions-Release ein deb gebaut wird sondern ein generisches, das auf alles passt, was die grundlegendsten Bedingungen erfüllt.
Gilt analog für yum / rpm-basierte Paketmanagementsysteme.