NEWS
Diskussion zum HowTo nodejs-Installation und upgrade
-
Die nachfolgende Anleitung steht nur noch aus historischen Gründen hier. Mittlerweile führt man am besten einen Wechsel der Version per
iob nodejs-updatedurch. Gegebenfalls zuvor per
iob fixden Befehl noch bekannt machen.Teil 1: Installation und Update
Teil 2: Installationen geradeziehen (siehe 2. Posting im Thread)Vorwort:
Bis auf Ausnahmefälle (z. B. bei Docker auf einer Synology) wird ein auf Debian basierendes System seit Jahren NICHT mehr per direktem root-login administriert, sondern als normaler user mittels 'sudo'. Solche login prompts sind also unnötig und 'gefährlich':root@raspberrypi:~#Nicht machen!
HINWEIS:
Das derzeitig empfohlene nodeJS-Paket ist Node 18 inklusive npm 9 (Stand 30.08.2023)Niemals ungerade Versionsnummern bei nodeJS verwenden, das sind ausschließlich Versionen für Entwickler und haben in einem stabilen System nichts zu suchen.
Für alte Raspberrys, die auf der armv6 Prozessor-Architektur basieren (Zero // Zero W / WH // 1 Mod. A // 1 Mod. A+ // 1 Mod. B // 1 Mod. B+) muss man etwas unschön selber Hand anlegen, da gibt es keinen offiziellen Support mehr. Siehe hier am Ende dieses Eintrags.
Nun zum Thema
TEIL 1 Installation und Update von nodejs
Node Installation bzw. Update unter Linux / Debian (und artverwandtem wie z. B. Raspbian / Rasberry OS / ubuntu) mit apt
Für eine Node-Erstinstallation:
Alt-Installationen entfernen:
Debian/RaspberryOS/Ubuntu und artverwandtes:
Alt- und Vorinstallationen (z. B. die dfsg-Version von nodejs) entfernen.sudo apt purge --autoremove nodejs* npm node-* libnode*Achtung, bei nodesource hat sich nun (31.08.2023) einiges geändert und bereits bestehende Setups müssen geändert werden.
Dazu löscht man die bestehenden Dinge und legt alles frisch neu an.Altlasten rauswerfen:
sudo rm `sudo find / -name nodesource.gpg` sudo rm `sudo find / -name nodesource.key` sudo rm /etc/apt/sources.list.d/nodesource.listDann das nodesource-Repository wieder anlegen lassen:
NODE_MAJOR=18 sudo apt update sudo apt install -y ca-certificates curl gnupg sudo mkdir -p /etc/apt/keyrings curl -fsSL https://deb.nodesource.com/gpgkey/nodesource-repo.gpg.key | sudo gpg --dearmor -o /etc/apt/keyrings/nodesource.gpg 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 update sudo apt install nodejsDie gewünschte Version ggfls. anpassen, also statt
NODE_MAJOR=18entsprechend 18 durch den gewünschten Versionszweig (z.B. 16) ersetzen.
Wobei das bei einem komplett frischen Debian nicht mal erforderlich ist, der iobroker-Installer installiert ohnehin eine passende Version von nodejs, wenn noch nicht vorhanden.Es ist übrigens hier nicht erforderlich, ein Paket 'node' oder 'npm' separat zu installieren, das ist schon im Paket 'nodejs' enthalten. Das gilt dann natürlich im weiteren auch für Upgrades/Updates von node.
Node-Update:
Wenn bereits eine Version von nodejs über den obigen Weg installiert wurde kann man Updates innerhalb der jeweiligen Version von nodejs mitsudo apt update sudo apt upgradevornehmen. In einem wird dann auch der Rest vom System aktualisiert.
Wenn neue, zusätzliche Pakete für die Installation erforderlich sind (passiert seltener, meist bei Kernel-Updates) muss man ggf. alternativ mitsudo apt full-upgradearbeiten. Das System meckert in dem Fall aber, wenn man zuerst mit apt upgrade versucht hat. Der Einfachheit halber am besten nach dem System-Upgrade mal per
sudo rebootneustarten. Insbesondere bei 'mitgefangenen' Kernel-Updates sollte man das tun.
Teil 1.1 Node-Upgrade/ Wechsel der nodejs-Version:
Vor dem Wechsel der node-Version legen wir mitiobroker stopden iobroker kurz auf Eis.
Die persönliche Abwandlung von mir bei Wechseln/Upgrades der nodejs-Version:
Die oben vorgenommenen Schritte (auch per iobroker-Installer) führen dazu, dass es eine Datei nodesource.list gibt, die das nodesource-Repository beinhaltet. Um die Version zu wechseln fügt man dort einfach eine passende Zeile ein. Ich habe da derzeitig 2 Quellen drin. Mit dem Editor nano kann man das recht einfach anpassen:sudo nano /etc/apt/sources.list.d/nodesource.listDie Datei wird dann etwa so aussehen:
#node 16 deb [signed-by=/etc/apt/keyrings/nodesource.gpg] https://deb.nodesource.com/node_16.x nodistro main #node 18 deb [signed-by=/etc/apt/keyrings/nodesource.gpg] https://deb.nodesource.com/node_18.x nodistro main(Darauf achten, dass die letzte Zeile mit einem ‚ENTER‘ abgeschlossen wird. Sonst gibt es beim üblichen Update-Zweisatz
sudo apt update sudo apt full-upgradeeine Fehlermeldung, dass am Ende ein Zeilensprung fehlen würde. So sinngemäß jedenfalls...
Jetzt hat man mehrere Möglichkeiten die gewünschte node-Version zu ändern.
Der Paketmanager apt wird in diesem Setup bei einem normalen Update immer die höchste Versionsnummer installieren, hier also eine 18.x
Man kann aber auch die Quelle temporär ausschalten, dazu einfach ein # vor die entsprechende Zeile setzen, dann wird die bei einem apt update übergangen und nur als Kommentar verstanden.Eine recht freie Auswahl bei den node-Versionen hat man, wenn man per
apt policy nodejsschaut, was in den einzelnen Repos zur Verfügung steht. Kann dann z. B. so aussehen:
echad@chet:/opt/iobroker $ apt policy nodejs nodejs: Installed: 16.15.1-deb-1nodesource1 Candidate: 16.15.1-deb-1nodesource1 Version table: *** 16.15.1-deb-1nodesource1 500 500 https://deb.nodesource.com/node_16.x bullseye/main arm64 Packages 100 /var/lib/dpkg/status 14.19.3-deb-1nodesource1 500 500 https://deb.nodesource.com/node_14.x bullseye/main arm64 Packages 12.22.5~dfsg-2~11u1 500 500 http://deb.debian.org/debian bullseye/main arm64 Packages 500 http://security.debian.org/debian-security bullseye-security/main arm64 PackagesPer
sudo apt install nodejs=VERSIONSNUMMER-deb-1nodesource1(Die 500 ist nicht Bestandteil der Versionsnummer!)
kann man eine exakte Version dann installieren. 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. (Könnte man per Pinning auch noch feiner einstellen, führt aber hier zuweit...)
Eine künftige Version von nodejs würde ich z. B. bei Bedarf dann einfach durch simples Ersetzen einer der nicht mehr benötigten Versionsnummern oder durch hinzufügen einer entsprechenden neuen Zeile für diese Version in der nodesource.list heranziehen.
Check:
Wenn alles sauber gelaufen ist sollte bei
uname -m && type -P nodejs node npm npx corepack && nodejs -v && node -v && npm -v && npx -v && corepack -v && iob -v && whoami && groups && echo $XDG_SESSION_TYPE && pwd && sudo apt update &> /dev/null && sudo apt update && apt policy nodejsdie Ausgabe etwa so aussehen:
pi@mysterium:~ $ uname -m && type -P nodejs node npm && nodejs -v && node -v && npm -v && iob -v && whoami && groups && pwd && sudo apt-get update &> /dev/null && sudo apt-get update && apt-cache policy nodejs armv7l Kein Docker /usr/bin/nodejs /usr/bin/node /usr/bin/npm /usr/bin/npx /usr/bin/corepack v18.15.0 v18.15.0 9.6.0 9.6.0 0.19.0 pi pi adm dialout cdrom sudo audio video plugdev games users input netdev gpio i2c spi iobroker wmbusmeters tty /home/pi Hit:1 http://deb.debian.org/debian unstable InRelease Hit:2 http://raspbian.raspberrypi.org/raspbian bullseye InRelease Hit:3 http://phoscon.de/apt/deconz bullseye InRelease Hit:4 http://archive.raspberrypi.org/debian bullseye InRelease Hit:5 https://deb.nodesource.com/node_16.x bullseye InRelease Hit:6 https://deb.nodesource.com/node_18.x bullseye InRelease Hit:7 https://packagecloud.io/ookla/speedtest-cli/debian bullseye InRelease Fetched 5,545 B in 3s (1,693 B/s) Reading package lists... Done Building dependency tree... Done Reading state information... Done All packages are up to date. nodejs: Installed: 18.15.0-deb-1nodesource1 Candidate: 18.15.0-deb-1nodesource1 Version table: *** 18.15.0-deb-1nodesource1 500 500 https://deb.nodesource.com/node_18.x bullseye/main armhf Packages 100 /var/lib/dpkg/status 16.20.0-deb-1nodesource1 500 500 https://deb.nodesource.com/node_16.x bullseye/main armhf Packages 12.22.12~dfsg-1~deb11u1 500 500 http://raspbian.raspberrypi.org/raspbian bullseye/main armhf Packages pi@mysterium:~ $Falls zu nodejs nichts gemeldet wird oder Teile der obigen Ausgabe nicht erscheinen bitte noch nodejs und node verlinken:
sudo ln -s /usr/bin/node /usr/bin/nodejsWichtig und richtig ist:
nodejs liegt in /usr/bin
node liegt in /usr/bin
npm liegt in /usr/bin
npx liegt in /usr/bin
corepack liegt in /usr/bin
und die Versionsnummern von nodejs und node sowie von npm und npx stimmen jeweils überein.Falsch ist eine Installation in /usr/local/bin oder irgendwelchen anderen Verzeichnissen als /usr/bin
Final lassen wir den
iobroker fixnoch laufen, damit ggf. die sogenannten capabilities auf die nun laufende node-Version angepasst werden.
Mit einem beherzteniobroker startrufen wir den Broker ins Leben zurück.
---- ENDE ---- ENDE ---- ENDE ---- ENDE
*** SONDERFALL ***
für linux-x64-musl / linux-x86 / linux-armv6l / Unofficial node-Builds
Z. B. alte Raspberry Pi müssen händisch gepflegt werden.
Das kann man dann so machen:Zunächst schauen, ob andere Versionen installiert sind:
type -P nodejs node npm && nodejs -v && node -v && npm -v && apt policy nodejsDie dann deinstallieren:
sudo apt purge --autoremove nodejs* npm node-* libnode*bzw. wenn die nicht per apt remove zu entfernen sind und irgendwo anders im Pfad liegen per
sudo rm /pfad/zu/nodejs sudo rm /pfad/zu/node sudo rm /pfad/zu/npmAktuelle node-VERSION in das System setzen (aktuellste vVERSION-Nummer bitte selber herausfinden...):
wget https://unofficial-builds.nodejs.org/download/release/vVERSION/node-vVERSION-linux-armv6l.tar.xz tar -xvf node-vVERSION-linux-armv6l.tar.xz cd node-vVERSION-linux-armv6l/ sudo cp -R * /usr/local/ sudo ln -s /usr/local/bin/node /usr/local/bin/nodejs sudo apt update sudo apt full-upgrade sudo apt autoremove sudo rebootNachteil der Vorgehensweise ist, dass Updates nicht vom Paketmanager wahrgenommen werden und man selber bei Bedarf diese Schritte mit der jeweiligen Version jedesmal durchlaufen muss.
Die Version von node liegt dann auch in /usr/local/bin, das ist in dem Fall entgegen meiner obigen Aussage dann in Ordnung bei alten Raspberry.NOTFALL - INSTALLATION (nicht empfohlen! / Versionen/Pfade sind anzupassen!)
iobroker stop sudo killall node cd ~ && mkdir nodejsinstall && cd nodejsinstall wget https://nodejs.org/dist/v18.5.0/node-v18.5.0-linux-arm64.tar.xz tar -xf node-v18.5.0-linux-arm64.tar.xz cd node-v18.5.0-linux-arm64/ sudo cp -r * /usr/ -
MOD-EDIT: Dies ist eine Abspaltung des Threads von hier
@Thomas-Braun sagte:
Falsch ist eine Installation in /usr/bin/local
Node.js 6.x hatte sich in /usr/local/bin installiert.
Aber nicht die von nodesource gepackte Version:
pi@raspberrypi:~ $ which nodejs && nodejs -v && which node && node -v && which npm && npm -v && apt policy nodejs /usr/bin/nodejs v8.17.0 /usr/bin/node v8.17.0 /usr/bin/npm 6.13.4[Edit:] Hattest du nicht zuerst node8 geschrieben, @paul53 ? Die node 6 liegt aber bestimmt auch dort. Ist aber ja eh nicht mehr relevant, ebenso wie node 8.
[Edit II:] Auch node6 liegt in /user/bin , wenn die Version von nodesource installiert wurde:
pi@raspberrypi:~ $ which nodejs && nodejs -v && which node && node -v && which npm && npm -v && apt policy nodejs /usr/bin/nodejs v6.14.4 /usr/bin/node v6.14.4 /usr/bin/npm 3.10.10 -
Die nachfolgende Anleitung steht nur noch aus historischen Gründen hier. Mittlerweile führt man am besten einen Wechsel der Version per
iob nodejs-updatedurch. Gegebenfalls zuvor per
iob fixden Befehl noch bekannt machen.Teil 1: Installation und Update
Teil 2: Installationen geradeziehen (siehe 2. Posting im Thread)Vorwort:
Bis auf Ausnahmefälle (z. B. bei Docker auf einer Synology) wird ein auf Debian basierendes System seit Jahren NICHT mehr per direktem root-login administriert, sondern als normaler user mittels 'sudo'. Solche login prompts sind also unnötig und 'gefährlich':root@raspberrypi:~#Nicht machen!
HINWEIS:
Das derzeitig empfohlene nodeJS-Paket ist Node 18 inklusive npm 9 (Stand 30.08.2023)Niemals ungerade Versionsnummern bei nodeJS verwenden, das sind ausschließlich Versionen für Entwickler und haben in einem stabilen System nichts zu suchen.
Für alte Raspberrys, die auf der armv6 Prozessor-Architektur basieren (Zero // Zero W / WH // 1 Mod. A // 1 Mod. A+ // 1 Mod. B // 1 Mod. B+) muss man etwas unschön selber Hand anlegen, da gibt es keinen offiziellen Support mehr. Siehe hier am Ende dieses Eintrags.
Nun zum Thema
TEIL 1 Installation und Update von nodejs
Node Installation bzw. Update unter Linux / Debian (und artverwandtem wie z. B. Raspbian / Rasberry OS / ubuntu) mit apt
Für eine Node-Erstinstallation:
Alt-Installationen entfernen:
Debian/RaspberryOS/Ubuntu und artverwandtes:
Alt- und Vorinstallationen (z. B. die dfsg-Version von nodejs) entfernen.sudo apt purge --autoremove nodejs* npm node-* libnode*Achtung, bei nodesource hat sich nun (31.08.2023) einiges geändert und bereits bestehende Setups müssen geändert werden.
Dazu löscht man die bestehenden Dinge und legt alles frisch neu an.Altlasten rauswerfen:
sudo rm `sudo find / -name nodesource.gpg` sudo rm `sudo find / -name nodesource.key` sudo rm /etc/apt/sources.list.d/nodesource.listDann das nodesource-Repository wieder anlegen lassen:
NODE_MAJOR=18 sudo apt update sudo apt install -y ca-certificates curl gnupg sudo mkdir -p /etc/apt/keyrings curl -fsSL https://deb.nodesource.com/gpgkey/nodesource-repo.gpg.key | sudo gpg --dearmor -o /etc/apt/keyrings/nodesource.gpg 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 update sudo apt install nodejsDie gewünschte Version ggfls. anpassen, also statt
NODE_MAJOR=18entsprechend 18 durch den gewünschten Versionszweig (z.B. 16) ersetzen.
Wobei das bei einem komplett frischen Debian nicht mal erforderlich ist, der iobroker-Installer installiert ohnehin eine passende Version von nodejs, wenn noch nicht vorhanden.Es ist übrigens hier nicht erforderlich, ein Paket 'node' oder 'npm' separat zu installieren, das ist schon im Paket 'nodejs' enthalten. Das gilt dann natürlich im weiteren auch für Upgrades/Updates von node.
Node-Update:
Wenn bereits eine Version von nodejs über den obigen Weg installiert wurde kann man Updates innerhalb der jeweiligen Version von nodejs mitsudo apt update sudo apt upgradevornehmen. In einem wird dann auch der Rest vom System aktualisiert.
Wenn neue, zusätzliche Pakete für die Installation erforderlich sind (passiert seltener, meist bei Kernel-Updates) muss man ggf. alternativ mitsudo apt full-upgradearbeiten. Das System meckert in dem Fall aber, wenn man zuerst mit apt upgrade versucht hat. Der Einfachheit halber am besten nach dem System-Upgrade mal per
sudo rebootneustarten. Insbesondere bei 'mitgefangenen' Kernel-Updates sollte man das tun.
Teil 1.1 Node-Upgrade/ Wechsel der nodejs-Version:
Vor dem Wechsel der node-Version legen wir mitiobroker stopden iobroker kurz auf Eis.
Die persönliche Abwandlung von mir bei Wechseln/Upgrades der nodejs-Version:
Die oben vorgenommenen Schritte (auch per iobroker-Installer) führen dazu, dass es eine Datei nodesource.list gibt, die das nodesource-Repository beinhaltet. Um die Version zu wechseln fügt man dort einfach eine passende Zeile ein. Ich habe da derzeitig 2 Quellen drin. Mit dem Editor nano kann man das recht einfach anpassen:sudo nano /etc/apt/sources.list.d/nodesource.listDie Datei wird dann etwa so aussehen:
#node 16 deb [signed-by=/etc/apt/keyrings/nodesource.gpg] https://deb.nodesource.com/node_16.x nodistro main #node 18 deb [signed-by=/etc/apt/keyrings/nodesource.gpg] https://deb.nodesource.com/node_18.x nodistro main(Darauf achten, dass die letzte Zeile mit einem ‚ENTER‘ abgeschlossen wird. Sonst gibt es beim üblichen Update-Zweisatz
sudo apt update sudo apt full-upgradeeine Fehlermeldung, dass am Ende ein Zeilensprung fehlen würde. So sinngemäß jedenfalls...
Jetzt hat man mehrere Möglichkeiten die gewünschte node-Version zu ändern.
Der Paketmanager apt wird in diesem Setup bei einem normalen Update immer die höchste Versionsnummer installieren, hier also eine 18.x
Man kann aber auch die Quelle temporär ausschalten, dazu einfach ein # vor die entsprechende Zeile setzen, dann wird die bei einem apt update übergangen und nur als Kommentar verstanden.Eine recht freie Auswahl bei den node-Versionen hat man, wenn man per
apt policy nodejsschaut, was in den einzelnen Repos zur Verfügung steht. Kann dann z. B. so aussehen:
echad@chet:/opt/iobroker $ apt policy nodejs nodejs: Installed: 16.15.1-deb-1nodesource1 Candidate: 16.15.1-deb-1nodesource1 Version table: *** 16.15.1-deb-1nodesource1 500 500 https://deb.nodesource.com/node_16.x bullseye/main arm64 Packages 100 /var/lib/dpkg/status 14.19.3-deb-1nodesource1 500 500 https://deb.nodesource.com/node_14.x bullseye/main arm64 Packages 12.22.5~dfsg-2~11u1 500 500 http://deb.debian.org/debian bullseye/main arm64 Packages 500 http://security.debian.org/debian-security bullseye-security/main arm64 PackagesPer
sudo apt install nodejs=VERSIONSNUMMER-deb-1nodesource1(Die 500 ist nicht Bestandteil der Versionsnummer!)
kann man eine exakte Version dann installieren. 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. (Könnte man per Pinning auch noch feiner einstellen, führt aber hier zuweit...)
Eine künftige Version von nodejs würde ich z. B. bei Bedarf dann einfach durch simples Ersetzen einer der nicht mehr benötigten Versionsnummern oder durch hinzufügen einer entsprechenden neuen Zeile für diese Version in der nodesource.list heranziehen.
Check:
Wenn alles sauber gelaufen ist sollte bei
uname -m && type -P nodejs node npm npx corepack && nodejs -v && node -v && npm -v && npx -v && corepack -v && iob -v && whoami && groups && echo $XDG_SESSION_TYPE && pwd && sudo apt update &> /dev/null && sudo apt update && apt policy nodejsdie Ausgabe etwa so aussehen:
pi@mysterium:~ $ uname -m && type -P nodejs node npm && nodejs -v && node -v && npm -v && iob -v && whoami && groups && pwd && sudo apt-get update &> /dev/null && sudo apt-get update && apt-cache policy nodejs armv7l Kein Docker /usr/bin/nodejs /usr/bin/node /usr/bin/npm /usr/bin/npx /usr/bin/corepack v18.15.0 v18.15.0 9.6.0 9.6.0 0.19.0 pi pi adm dialout cdrom sudo audio video plugdev games users input netdev gpio i2c spi iobroker wmbusmeters tty /home/pi Hit:1 http://deb.debian.org/debian unstable InRelease Hit:2 http://raspbian.raspberrypi.org/raspbian bullseye InRelease Hit:3 http://phoscon.de/apt/deconz bullseye InRelease Hit:4 http://archive.raspberrypi.org/debian bullseye InRelease Hit:5 https://deb.nodesource.com/node_16.x bullseye InRelease Hit:6 https://deb.nodesource.com/node_18.x bullseye InRelease Hit:7 https://packagecloud.io/ookla/speedtest-cli/debian bullseye InRelease Fetched 5,545 B in 3s (1,693 B/s) Reading package lists... Done Building dependency tree... Done Reading state information... Done All packages are up to date. nodejs: Installed: 18.15.0-deb-1nodesource1 Candidate: 18.15.0-deb-1nodesource1 Version table: *** 18.15.0-deb-1nodesource1 500 500 https://deb.nodesource.com/node_18.x bullseye/main armhf Packages 100 /var/lib/dpkg/status 16.20.0-deb-1nodesource1 500 500 https://deb.nodesource.com/node_16.x bullseye/main armhf Packages 12.22.12~dfsg-1~deb11u1 500 500 http://raspbian.raspberrypi.org/raspbian bullseye/main armhf Packages pi@mysterium:~ $Falls zu nodejs nichts gemeldet wird oder Teile der obigen Ausgabe nicht erscheinen bitte noch nodejs und node verlinken:
sudo ln -s /usr/bin/node /usr/bin/nodejsWichtig und richtig ist:
nodejs liegt in /usr/bin
node liegt in /usr/bin
npm liegt in /usr/bin
npx liegt in /usr/bin
corepack liegt in /usr/bin
und die Versionsnummern von nodejs und node sowie von npm und npx stimmen jeweils überein.Falsch ist eine Installation in /usr/local/bin oder irgendwelchen anderen Verzeichnissen als /usr/bin
Final lassen wir den
iobroker fixnoch laufen, damit ggf. die sogenannten capabilities auf die nun laufende node-Version angepasst werden.
Mit einem beherzteniobroker startrufen wir den Broker ins Leben zurück.
---- ENDE ---- ENDE ---- ENDE ---- ENDE
*** SONDERFALL ***
für linux-x64-musl / linux-x86 / linux-armv6l / Unofficial node-Builds
Z. B. alte Raspberry Pi müssen händisch gepflegt werden.
Das kann man dann so machen:Zunächst schauen, ob andere Versionen installiert sind:
type -P nodejs node npm && nodejs -v && node -v && npm -v && apt policy nodejsDie dann deinstallieren:
sudo apt purge --autoremove nodejs* npm node-* libnode*bzw. wenn die nicht per apt remove zu entfernen sind und irgendwo anders im Pfad liegen per
sudo rm /pfad/zu/nodejs sudo rm /pfad/zu/node sudo rm /pfad/zu/npmAktuelle node-VERSION in das System setzen (aktuellste vVERSION-Nummer bitte selber herausfinden...):
wget https://unofficial-builds.nodejs.org/download/release/vVERSION/node-vVERSION-linux-armv6l.tar.xz tar -xvf node-vVERSION-linux-armv6l.tar.xz cd node-vVERSION-linux-armv6l/ sudo cp -R * /usr/local/ sudo ln -s /usr/local/bin/node /usr/local/bin/nodejs sudo apt update sudo apt full-upgrade sudo apt autoremove sudo rebootNachteil der Vorgehensweise ist, dass Updates nicht vom Paketmanager wahrgenommen werden und man selber bei Bedarf diese Schritte mit der jeweiligen Version jedesmal durchlaufen muss.
Die Version von node liegt dann auch in /usr/local/bin, das ist in dem Fall entgegen meiner obigen Aussage dann in Ordnung bei alten Raspberry.NOTFALL - INSTALLATION (nicht empfohlen! / Versionen/Pfade sind anzupassen!)
iobroker stop sudo killall node cd ~ && mkdir nodejsinstall && cd nodejsinstall wget https://nodejs.org/dist/v18.5.0/node-v18.5.0-linux-arm64.tar.xz tar -xf node-v18.5.0-linux-arm64.tar.xz cd node-v18.5.0-linux-arm64/ sudo cp -r * /usr/@Thomas-Braun Ist ja nett, dass du das so umfangreich beschreibst. Aber wozu? Es gibt ja schon ein offizielles HowTo. Aber als Ergänzung ganz interessant, für Noobs aber zu "hoch" fürchte ich.
-
@Thomas-Braun Ist ja nett, dass du das so umfangreich beschreibst. Aber wozu? Es gibt ja schon ein offizielles HowTo. Aber als Ergänzung ganz interessant, für Noobs aber zu "hoch" fürchte ich.
@Dr-Bakterius sagte in [HowTo] Nodejs-Installation und Upgrades unter Debian:
Aber wozu?
a) Weil ich Lust hatte das mal niederzuschreiben
b) Weil das offizielle HowTo mittlerweile für aktuelle Debian-Varianten nicht mehr ganz exakt ist. Und hier auch ein paar Hintergründe erläutert werden können. Sieh es als Ergänzung an. Part II kümmert sich dann um Problemlösungsstrategien. Kommt ja nicht gar so selten vor, dass Installationen trotz offiziellem HowTo in die Hose gehen. Warum auch immer...
-
@Dr-Bakterius sagte in [HowTo] Nodejs-Installation und Upgrades unter Debian:
Aber wozu?
a) Weil ich Lust hatte das mal niederzuschreiben
b) Weil das offizielle HowTo mittlerweile für aktuelle Debian-Varianten nicht mehr ganz exakt ist. Und hier auch ein paar Hintergründe erläutert werden können. Sieh es als Ergänzung an. Part II kümmert sich dann um Problemlösungsstrategien. Kommt ja nicht gar so selten vor, dass Installationen trotz offiziellem HowTo in die Hose gehen. Warum auch immer...
@Thomas-Braun Danke, ich habe schon lange drauf gewartet, dass Du mal ein paar Hintergründe aufhellst. Das hier ist für mich sehr, sehr sinnvoll und äußerst brauchbar!!!

-
@Thomas-Braun Ist ja nett, dass du das so umfangreich beschreibst. Aber wozu? Es gibt ja schon ein offizielles HowTo. Aber als Ergänzung ganz interessant, für Noobs aber zu "hoch" fürchte ich.
@Dr-Bakterius sagte in [HowTo] Nodejs-Installation und Upgrades unter Debian:
@Thomas-Braun Ist ja nett, dass du das so umfangreich beschreibst. Aber wozu? Es gibt ja schon ein offizielles HowTo. Aber als Ergänzung ganz interessant, für Noobs aber zu "hoch" fürchte ich.
Ich fürchte -so paradox das klingen mag- dass für Noobs dass ganze sogar noch umfangreicher sein müsste.
Ggf. Dann aber didaktisch anders aufgebaut.Ich finde die Hinweise sehr wichtig, die Vorgehensweise sehr gut beschrieben.
Was allerdings für Noobs wahrscheinlich entscheidend sein wird, ist es verbogene Installationen wieder in die Spur zu bringen.
Dazu hat Thomas ja schon einige Threads erfolgreich betreut.Mir kommen da ganz spontan Distros in den Sinn, die nodejs mitbringen und über die Standardanleitung nicht dazu zu bewegen sind sauber zu funktionieren.
-
@Dr-Bakterius sagte in [HowTo] Nodejs-Installation und Upgrades unter Debian:
@Thomas-Braun Ist ja nett, dass du das so umfangreich beschreibst. Aber wozu? Es gibt ja schon ein offizielles HowTo. Aber als Ergänzung ganz interessant, für Noobs aber zu "hoch" fürchte ich.
Ich fürchte -so paradox das klingen mag- dass für Noobs dass ganze sogar noch umfangreicher sein müsste.
Ggf. Dann aber didaktisch anders aufgebaut.Ich finde die Hinweise sehr wichtig, die Vorgehensweise sehr gut beschrieben.
Was allerdings für Noobs wahrscheinlich entscheidend sein wird, ist es verbogene Installationen wieder in die Spur zu bringen.
Dazu hat Thomas ja schon einige Threads erfolgreich betreut.Mir kommen da ganz spontan Distros in den Sinn, die nodejs mitbringen und über die Standardanleitung nicht dazu zu bewegen sind sauber zu funktionieren.
@Homoran sagte in [HowTo] Nodejs-Installation und Upgrades unter Debian:
Mir kommen da ganz spontan Distros in den Sinn, die nodejs mitbringen
Welche sind das? Von Haus aus haben soweit ich das sehe die wenigsten Vanilla-Distros nodejs an Bord. Bei Debian und abgeleiteten Distros kommt mir keine in den Sinn.
Anders schaut das halt ggf. bei vorgekochten Images aus. -
@Homoran sagte in [HowTo] Nodejs-Installation und Upgrades unter Debian:
Mir kommen da ganz spontan Distros in den Sinn, die nodejs mitbringen
Welche sind das? Von Haus aus haben soweit ich das sehe die wenigsten Vanilla-Distros nodejs an Bord. Bei Debian und abgeleiteten Distros kommt mir keine in den Sinn.
Anders schaut das halt ggf. bei vorgekochten Images aus.@Thomas-Braun sagte in [HowTo] Nodejs-Installation und Upgrades unter Debian:
Welche sind das?
Ich hatte so etwas bereits bei Raspbian und Ubuntu.
Ob das heute noch so ist weiss ich nicht.
Auf jeden Fall könnten solche Systeme aus der jessie Ära immer noch laufen.@Thomas-Braun sagte in [HowTo] Nodejs-Installation und Upgrades unter Debian:
Anders schaut das halt bei vorgekochten Images aus.
Bei "meinen" iobroker Images ist immer alles nach aktuellem Stand installiert worden. Seit ewigen Zeiten bereits über nodesource.
Oder was für vorgekochte Images meinst du? -
@Thomas-Braun sagte in [HowTo] Nodejs-Installation und Upgrades unter Debian:
Welche sind das?
Ich hatte so etwas bereits bei Raspbian und Ubuntu.
Ob das heute noch so ist weiss ich nicht.
Auf jeden Fall könnten solche Systeme aus der jessie Ära immer noch laufen.@Thomas-Braun sagte in [HowTo] Nodejs-Installation und Upgrades unter Debian:
Anders schaut das halt bei vorgekochten Images aus.
Bei "meinen" iobroker Images ist immer alles nach aktuellem Stand installiert worden. Seit ewigen Zeiten bereits über nodesource.
Oder was für vorgekochte Images meinst du?@Homoran
Jessie sollte man ohnehin endlich beerdigen. Da gibt es auch von nodesource glaube ich kein Repo mehr, weil Jessie ganz offiziell von niemandem mehr unterstützt wird. Selbst von debian LTS ist da nix mehr zu wollen.
Man kann sich natürlich daran versuchen node aus den sourcen selber zu bauen. Aber empfehlen würde ich das nicht.Bei Images hatte ich gar keine konkreten im Sinn, aber es mag da in der großen weiten Welt ja das ein oder andere geben. Ab Werk kenne ich jedenfalls keine Distribution bei der nodejs in einer Standard-Installation dabei wäre. Das muss eigentlich immer nachträglich installiert werden.
-
@Homoran
Jessie sollte man ohnehin endlich beerdigen. Da gibt es auch von nodesource glaube ich kein Repo mehr, weil Jessie ganz offiziell von niemandem mehr unterstützt wird. Selbst von debian LTS ist da nix mehr zu wollen.
Man kann sich natürlich daran versuchen node aus den sourcen selber zu bauen. Aber empfehlen würde ich das nicht.Bei Images hatte ich gar keine konkreten im Sinn, aber es mag da in der großen weiten Welt ja das ein oder andere geben. Ab Werk kenne ich jedenfalls keine Distribution bei der nodejs in einer Standard-Installation dabei wäre. Das muss eigentlich immer nachträglich installiert werden.
@Thomas-Braun sagte in [HowTo] Nodejs-Installation und Upgrades unter Debian:
Ab Werk kenne ich jedenfalls keine Distribution bei der nodejs in einer Standard-Installation dabei wäre. Das muss eigentlich immer nachträglich installiert werden.
Das war definitiv nicht immer so.
Wie gesagt bin ich da nicht mehr auf dem Laufenden, ob es noch vorkommt.Mit jessie wollte ich nur den Zeitrahmen eingrenzen, als ich Original Distros mit node hatte (bei Ubuntu hiess es natürlich anders)
-
Nabend, kurze Frage.
Ich müsste auch den js-controller updaten, gab es hier nicht mal eine Reihenfolge, wenn man nodejs und js-controller updaten muss ?Nodejs kann ich mit
sudo apt update sudo apt upgradeda ich das schon mal so installiert hatte
curl -sL https://deb.nodesource.com/setup_12.x | sudo -E bash – sudo apt install nodejsdas hab ich so richtig verstanden ?
-
Nabend, kurze Frage.
Ich müsste auch den js-controller updaten, gab es hier nicht mal eine Reihenfolge, wenn man nodejs und js-controller updaten muss ?Nodejs kann ich mit
sudo apt update sudo apt upgradeda ich das schon mal so installiert hatte
curl -sL https://deb.nodesource.com/setup_12.x | sudo -E bash – sudo apt install nodejsdas hab ich so richtig verstanden ?
@D3ltoroxp Die Reihenfolge ist eigentlich wurscht. Ich würde aber vielleicht vor dem Update von node den ioBroker stoppen und node als erstes installieren. Dann legt sich das js-controller update gleich in die aktuelle node-Laufzeitumgebung rein.
iobroker stopDer apt-Zweisatz spült dir (ggf. zusammen mit anderen Updates) auch die aktuelle Version von node12 auf das System.
-
@D3ltoroxp Die Reihenfolge ist eigentlich wurscht. Ich würde aber vielleicht vor dem Update von node den ioBroker stoppen und node als erstes installieren. Dann legt sich das js-controller update gleich in die aktuelle node-Laufzeitumgebung rein.
iobroker stopDer apt-Zweisatz spült dir (ggf. zusammen mit anderen Updates) auch die aktuelle Version von node12 auf das System.
@Thomas-Braun hätte ich eh gestoppt, steht glaub auch in der Anleitung, oder habs zumindest gerade gelesen, grad läuft noch Backup von der VM. Dann kann ja nichts meh schief gehen. Dann mach ich erst node und dann den controller. Danke mal !!
Und was ist mit dieser Anleitung ?
Wird dort einfach Teil 2 automatisch gemacht mit
curl -sL https://iobroker.net/fix.sh | bash -was man hier unter Teil 2 selber machen muss ?
-
@Thomas-Braun hätte ich eh gestoppt, steht glaub auch in der Anleitung, oder habs zumindest gerade gelesen, grad läuft noch Backup von der VM. Dann kann ja nichts meh schief gehen. Dann mach ich erst node und dann den controller. Danke mal !!
Und was ist mit dieser Anleitung ?
Wird dort einfach Teil 2 automatisch gemacht mit
curl -sL https://iobroker.net/fix.sh | bash -was man hier unter Teil 2 selber machen muss ?
@D3ltoroxp sagte in [HowTo] Nodejs-Installation und Upgrades unter Debian:
curl -sL https://iobroker.net/fix.sh | bash -
Hat nichts mit nodejs zu tun. Das repariert ggf. den ioBroker selber.
Man sollte den Fixer aber nach einem node-Update mal laufen lassen, weil der auch alte, nicht mehr für ein aktualisiertes node gültige 'Rechte' (capabilities) anpasst.Mein 'Teil 2' gibt ein paar Hinweise wie man eine node-Installation wieder gerade rücken kann. Das fehlte mir ein wenig in der Anleitung von @Stabilostick .
-
@D3ltoroxp sagte in [HowTo] Nodejs-Installation und Upgrades unter Debian:
curl -sL https://iobroker.net/fix.sh | bash -
Hat nichts mit nodejs zu tun. Das repariert ggf. den ioBroker selber.
Man sollte den Fixer aber nach einem node-Update mal laufen lassen, weil der auch alte, nicht mehr für ein aktualisiertes node gültige 'Rechte' (capabilities) anpasst.Mein 'Teil 2' gibt ein paar Hinweise wie man eine node-Installation wieder gerade rücken kann. Das fehlte mir ein wenig in der Anleitung von @Stabilostick .
@Thomas-Braun Ich bin etwas verwirrt. Ich hatte den Node ja schon mal vor Monaten geupdated, nach der verlinken Anleitung. Deine hat noch einen weiteren Teil, ist das denn wichtig ? Oder ist die andere Anleitung veraltet ?
-
@Thomas-Braun Ich bin etwas verwirrt. Ich hatte den Node ja schon mal vor Monaten geupdated, nach der verlinken Anleitung. Deine hat noch einen weiteren Teil, ist das denn wichtig ? Oder ist die andere Anleitung veraltet ?
@D3ltoroxp
Der Teil 2 bezieht sich auf eine 'falsche' Installation und wie man die wieder gerade rückt.Teil 2: Installationen geradeziehen
Und was mache ich, wenn die Installation nicht so aussieht? -
@D3ltoroxp
Der Teil 2 bezieht sich auf eine 'falsche' Installation und wie man die wieder gerade rückt.Teil 2: Installationen geradeziehen
Und was mache ich, wenn die Installation nicht so aussieht?@Thomas-Braun Ah sorry, mein Fehler, Teil 1.1 nicht Teil 2.
Teil 1.0 ist klar, upgrade auf von z.b 10x auf 12x oder eben wenn man unter 12x ist auf die neuste 12x updaten. Aber Teil 1.1 hab ich noch nie gemacht.Wenn ich nur 12x updaten möchte interessiert nicht Teil 1.1 indem Fall nicht, da ich ja nicht auf z.b. 14x upgraden möchte. So jetzt hab ichs glaub.
-
@Thomas-Braun Ah sorry, mein Fehler, Teil 1.1 nicht Teil 2.
Teil 1.0 ist klar, upgrade auf von z.b 10x auf 12x oder eben wenn man unter 12x ist auf die neuste 12x updaten. Aber Teil 1.1 hab ich noch nie gemacht.Wenn ich nur 12x updaten möchte interessiert nicht Teil 1.1 indem Fall nicht, da ich ja nicht auf z.b. 14x upgraden möchte. So jetzt hab ichs glaub.
@D3ltoroxp
Teil 1.1 ist für ein Upgrade von z. B. 10 auf 12 oder von 12 auf 14 usw. vorgesehen.
Einfach eine Ziffer in der nodesource.list auszutauschen finde ich wesentlich einfacher als über curl das skript von nodesource selber wieder ranzuziehen. Schlussendlich macht das dann auch nichts anderes mehr. Und man hat je nach Aufbau der Datei auch noch easy Zugang zu anderen Versionszweigen. -
@D3ltoroxp
Teil 1.1 ist für ein Upgrade von z. B. 10 auf 12 oder von 12 auf 14 usw. vorgesehen.
Einfach eine Ziffer in der nodesource.list auszutauschen finde ich wesentlich einfacher als über curl das skript von nodesource selber wieder ranzuziehen. Schlussendlich macht das dann auch nichts anderes mehr. Und man hat je nach Aufbau der Datei auch noch easy Zugang zu anderen Versionszweigen.@Thomas-Braun
Servus,
jetzt muss ich hier leider nochmal schreiben damit nichts schief läuft...pi@ioBroker-RasPi:~ $ which nodejs && nodejs -v && which node && node -v && whic h npm && npm -v && apt policy nodejs /usr/bin/nodejs v14.11.0 /usr/local/bin/node v12.18.4 /usr/local/bin/npm 6.14.6 nodejs: Installiert: 14.11.0-1nodesource1 Installationskandidat: 14.11.0-1nodesource1 Versionstabelle: *** 14.11.0-1nodesource1 500 500 https://deb.nodesource.com/node_14.x stretch/main armhf Packages 100 /var/lib/dpkg/status 8.11.1~dfsg-2~bpo9+1 500 500 http://archive.raspberrypi.org/debian stretch/main armhf Packages 4.8.2~dfsg-1 500 500 http://raspbian.raspberrypi.org/raspbian stretch/main armhf PackagesWie wir sehen ist der Pfad von node und npm falsch.
In der Beschreibung heißt es erstmal die Datei entfernen...
D.h. für mich im Klartext:sudo rm /usr/local/bin/nodeUnd
sudo rm /usr/local/bin/npmAußerdem hat nodejs und node eine unterschiedliche Version.
Sorry dass ich so plump frage - hab mir allerdings den aktuellen Stand recht schwer ergoogelt und möchte nichts zerschießen...
Bei mir läuft soweit alles bis auf der Zigbee Adapter. Wobei der nach ein paar Problemchen trotz der o.g. Fehler bis zu einem Restart lief.Ich möchte aber das System sauber ziehen.
PS: außerdem muss ich meinen orangePi auch noch updaten
-
@Thomas-Braun
Servus,
jetzt muss ich hier leider nochmal schreiben damit nichts schief läuft...pi@ioBroker-RasPi:~ $ which nodejs && nodejs -v && which node && node -v && whic h npm && npm -v && apt policy nodejs /usr/bin/nodejs v14.11.0 /usr/local/bin/node v12.18.4 /usr/local/bin/npm 6.14.6 nodejs: Installiert: 14.11.0-1nodesource1 Installationskandidat: 14.11.0-1nodesource1 Versionstabelle: *** 14.11.0-1nodesource1 500 500 https://deb.nodesource.com/node_14.x stretch/main armhf Packages 100 /var/lib/dpkg/status 8.11.1~dfsg-2~bpo9+1 500 500 http://archive.raspberrypi.org/debian stretch/main armhf Packages 4.8.2~dfsg-1 500 500 http://raspbian.raspberrypi.org/raspbian stretch/main armhf PackagesWie wir sehen ist der Pfad von node und npm falsch.
In der Beschreibung heißt es erstmal die Datei entfernen...
D.h. für mich im Klartext:sudo rm /usr/local/bin/nodeUnd
sudo rm /usr/local/bin/npmAußerdem hat nodejs und node eine unterschiedliche Version.
Sorry dass ich so plump frage - hab mir allerdings den aktuellen Stand recht schwer ergoogelt und möchte nichts zerschießen...
Bei mir läuft soweit alles bis auf der Zigbee Adapter. Wobei der nach ein paar Problemchen trotz der o.g. Fehler bis zu einem Restart lief.Ich möchte aber das System sauber ziehen.
PS: außerdem muss ich meinen orangePi auch noch updaten
@Habedere Und die Frage ist?
Ich würde allerdings node12 installieren, nicht node14. Die war bei mir auch nur zufällig aktiv, als ich die Anleitung geschrieben habe.