Node.js Installation

Möchte man Node.js verwenden, so ist es in den Repostories von Ubuntu, Debian und Raspbian vorhanden, aber leider keine aktuelle Versionen.

Nun haben wir zwei Möglichkeiten zur Installation. Eine manuelle und die über NodeSource-Repository.
In beiden Fällen muss jedoch erst einmal die alte Version entfernt werden.

sudo apt-get remove nodejs
sudo apt-get autoremove
sudo apt-get autoclean

Installation durch das NodeSource-Repository

Die Instalation über das Repository gilt als die einfachste und sicherste Methode für, denn hierbei werden die Daten von NodeSource verwendet und alle Updates werden über den Paketmanager installiert.

Abhängig von der gewünschten Version rufen wir über einen der nachfolgenden Befehle das Setup Skript auf, welches das verwendete Betriebssystem erkennt und nimmt die passenden Paketquellen.

curl -sL https://deb.nodesource.com/setup_4.x | sudo -E bash -
curl -sL https://deb.nodesource.com/setup_6.x | sudo -E bash -
curl -sL https://deb.nodesource.com/setup_8.x | sudo -E bash -
curl -sL https://deb.nodesource.com/setup_10.x | sudo -E bash -
curl -sL https://deb.nodesource.com/setup_12.x | sudo -E bash -

Nach dem erfolgreichen Download installieren wir Node.js und die Build-Tools, welche für Node.js Modulen mit nativen Addons benötigt werden.

sudo apt-get install -y nodejs build-essential

Das wars auch schon.

Manuelle Installation

Bei der manuellen Installation ist es wichtig, über die offizielle Downloadseite von Node.js, die für unsere Plattform passende Variante herunterzuladen.

  • bei einem normalen Debian oder Ubuntu System ist dies die von den Linux Binaries (x86/x64) also 32bit oder 64bit Variante
  • auf einem Raspberry Pi ist dies abhängig vom Model bei Linux Binaries (ARM), dort haben wir die ARMv6 (Raspberry Pi A/A+/B/B+/Zero/ZeroW), ARMv7 (Raspberry Pi 2B/3B oder ARMv8 (Raspberry Pi 4) Varianten.

In meinen Beispiel verwenden wir ARMv8 mit Node.js 10.16.3

cd /tmp
wget https://nodejs.org/dist/v10.16.3/node-v10.16.3-linux-arm64.tar.xz
tar -xvf node-v10.16.3-linux-arm64.tar.xz
sudo mv node-v10.16.3-linux-arm64 /opt/
sudo ln -s /opt/node-v10.16.3-linux-arm64 /opt/node
sudo chown -R root:root /opt/node*
sudo ln -s /opt/node/bin/node /usr/bin/node
sudo ln -s /opt/node/bin/npm /usr/bin/npm

Node.js ist damit installiert und die Befehle node sowie npm sind global verfügbar.

Eine Empfehlung ist noch das Verzeichnis /opt/node/bin der PATH-Variable hinzuzufügen, damit global installierte Node.js Module wie unter anderem TypeScript, automatisch global in der Shell verfügbar sind. Hierbei rufen wir einfach den folgenden Befehel auf, der die Datei /etc/profile.d/nodejs.sh erstellt und dann bei jedem Login eines Nutzers den Pfad automatisch erweitert.

echo PATH=\$PATH:/opt/node/bin | sudo tee /etc/profile.d/nodejs.sh > /dev/null

Das wars dann auch schon mit der manuellen Installation. Zu bedeneken bleibt aber noch, dass keine automatischen Updates erfolgen.

Node.Js Installation mit NVM

NVM ist ein Installations und Updatescript für Node.js und steht für Node Version Manager. Mit folgendem Befehl können wir Node.js installieren bzw auch aktualisieren. Ein weiterer Vorteil von NVM ist, dass wir mehrere Versionen von Node.js verwenden können.

curl -o- https://raw.githubusercontent.com/nvm-sh/nvm/v0.34.0/install.sh | bash

Das Skript klont das nvm-Repository in ~/.nvm und fügt die Quellzeilen zu ihrem Profil hinzu (~/.bash_profile, ~/.zshrc, ~/.profile, oder ~/.bashrc)

Nach der Installation überprüfen wir die Installation mit folgendem Befehl.

command -v nvm

Welche Node.js Version wir verwenden wollen, können wir mit folgenden Befehl definieren.

nvm install node | "node" ist ein Alias für die letzte Version

Um eine bestimmte Version zuverwenden, brauchen wir folgenden Befehl.

nvm install 6.14.4 | oder 10.10.0, 8.9.1, etc