Node.js unter Linux installieren – nvm, npm und die richtige LTS-Version
Node.js über den System-Paketmanager zu installieren klingt einfach – führt aber oft zu veralteten Versionen und Berechtigungsproblemen. Der richtige Weg ist nvm (Node Version Manager): damit installierst du Node.js ohne Root-Rechte, kannst mehrere Versionen parallel betreiben und zwischen ihnen wechseln.
LTS vs. Current – welche Version?
Node.js hat ein klares Release-Schema: gerade Versionsnummern werden LTS (Long Term Support), ungerade laufen nur 6 Monate.
| Version | Codename | Status | Support bis |
|---|---|---|---|
| 24.x | Krypton | Active LTS ← empfohlen | April 2028 |
| 22.x | Jod | Maintenance LTS | April 2027 |
| 25.x | – | Current (unstabil) | Juni 2026 |
| 20.x | Iron | EOL | April 2026 |
Empfehlung für Produktion und neue Projekte: Node.js 24.x (Active LTS)
Warum nicht apt / dnf für Node.js?
# Was apt liefert (oft veraltet):
sudo apt install nodejs
node --version
# v18.19.0 ← viel zu alt für 2026!
Probleme mit dem System-Paketmanager:
- Veraltete Versionen (Ubuntu 24.04 hat Node.js 18 im Repo)
- Globale npm-Pakete brauchen
sudo→ Berechtigungsprobleme - Keine einfache Möglichkeit, zwischen Versionen zu wechseln
- Kein sauberes Upgrade auf neue Versionen
nvm löst alle diese Probleme – und du brauchst keinen einzigen sudo-Befehl.
nvm installieren
Voraussetzungen
# curl muss installiert sein
sudo apt install -y curl # Ubuntu/Debian
sudo dnf install -y curl # Fedora
nvm-Installation
# Aktuellen Installer herunterladen und ausführen
curl -o- https://raw.githubusercontent.com/nvm-sh/nvm/v0.40.1/install.sh | bash
Hinweis: Die Version im URL (
v0.40.1) ändert sich. Aktuelle Version auf github.com/nvm-sh/nvm prüfen.
Der Installer fügt folgendes in ~/.bashrc (oder ~/.zshrc) ein:
export NVM_DIR="$HOME/.nvm"
[ -s "$NVM_DIR/nvm.sh" ] && \. "$NVM_DIR/nvm.sh"
[ -s "$NVM_DIR/bash_completion" ] && \. "$NVM_DIR/bash_completion"
Installation prüfen
# Neues Terminal öffnen oder:
source ~/.bashrc
nvm --version
# 0.40.1
Node.js installieren und verwalten
LTS-Version installieren
# Neueste LTS-Version (empfohlen)
nvm install --lts
# Spezifische Version
nvm install 24
# Genaue Version
nvm install 24.13.1
# Weitere Version parallel
nvm install 22
Zwischen Versionen wechseln
# Alle installierten Versionen anzeigen
nvm ls
# Aktive Version anzeigen
node --version
# Zu anderer Version wechseln
nvm use 22
# Standard-Version setzen (gilt für neue Shells)
nvm alias default 24
# Neueste installierte LTS als Standard
nvm alias default lts/*
Beispiel-Session
nvm install --lts
# Installing latest LTS version (v24.13.1)...
# Now using node v24.13.1 (npm v11.x.x)
node --version
# v24.13.1
npm --version
# 11.x.x
# Alte Version für Legacy-Projekt
nvm install 20
nvm use 20
node --version
# v20.x.x
# Zurück zu LTS
nvm use 24
npm: Pakete installieren und verwalten
npm (Node Package Manager) wird automatisch mit Node.js installiert.
Lokale Pakete (Standard – immer bevorzugen)
# Neues Projekt initialisieren
mkdir mein-projekt && cd mein-projekt
npm init -y
# Erstellt package.json
# Paket installieren (Produktionsabhängigkeit)
npm install express
npm install axios lodash
# Entwicklungsabhängigkeit (nicht in Produktion benötigt)
npm install --save-dev jest eslint prettier
# Spezifische Version
npm install react@18.2.0
# Paket entfernen
npm uninstall express
package.json verstehen
{
"name": "mein-projekt",
"version": "1.0.0",
"scripts": {
"start": "node src/index.js",
"dev": "nodemon src/index.js",
"test": "jest",
"build": "tsc"
},
"dependencies": {
"express": "^4.18.2"
},
"devDependencies": {
"jest": "^29.0.0",
"nodemon": "^3.0.0"
}
}
# Scripts ausführen
npm start
npm run dev
npm test
npm run build
node_modules und .gitignore
# node_modules NIE ins Repository!
echo "node_modules/" >> .gitignore
# Abhängigkeiten installieren (nach git clone)
npm install
package-lock.json
Die package-lock.json enthält exakte Versionen aller Abhängigkeiten (inkl. transitiver). Sie sollte immer ins Repository committed werden.
# Exakt nach package-lock.json installieren (reproduzierbar)
npm ci
# Reguläres install (kann Versionen updaten)
npm install
Faustregel: In CI/CD immer
npm cistattnpm install.
Pakete aktualisieren
# Veraltete Pakete anzeigen
npm outdated
# Alle Pakete aktualisieren (innerhalb der semver-Ranges)
npm update
# Auf neueste Version (ignoriert semver-Range)
npm install paket@latest
Globale Pakete und npx
Globale Installation (nur für CLI-Tools)
# Globale Pakete gehen in ~/.nvm/versions/node/vX/lib/node_modules/
# KEIN sudo nötig!
npm install -g typescript
npm install -g @angular/cli
npm install -g prettier
# Globale Pakete anzeigen
npm list -g --depth=0
# Globales Paket entfernen
npm uninstall -g typescript
Wichtig: Globale Pakete sind an die aktive Node.js-Version gebunden. Wenn du die Version wechselst, musst du globale Pakete neu installieren.
# Globale Pakete von alter zu neuer Version migrieren
nvm install 24 --reinstall-packages-from=22
npx: Tool einmalig ausführen ohne Installation
# Kein globales Install nötig
npx create-react-app meine-app
npx create-next-app@latest meine-next-app
npx prettier --write datei.js
# Package temporär ausführen (spezifische Version)
npx node@20 --version
.nvmrc: Versionsbindung pro Projekt
Mit einer .nvmrc-Datei legst du die Node.js-Version für ein Projekt fest:
# Im Projektverzeichnis
echo "24" > .nvmrc
# oder genaue Version:
echo "24.13.1" > .nvmrc
# .nvmrc ins Repository committen!
Automatisches Wechseln
Wenn du in ein Verzeichnis mit .nvmrc wechselst:
nvm use
# Found '/home/andre/mein-projekt/.nvmrc' with version <24>
# Now using node v24.13.1
# Automatisch beim cd (in ~/.bashrc hinzufügen):
cdnvm() {
builtin cd "$@"
if [ -f .nvmrc ]; then
nvm use
fi
}
alias cd=cdnvm
Häufige Probleme
nvm: command not found
# Shell-Konfiguration prüfen
grep nvm ~/.bashrc
# Falls nichts: nvm-Zeilen manuell in ~/.bashrc eintragen
export NVM_DIR="$HOME/.nvm"
[ -s "$NVM_DIR/nvm.sh" ] && \. "$NVM_DIR/nvm.sh"
source ~/.bashrc
npm globale Pakete brauchen sudo
Passiert, wenn Node.js ohne nvm (z.B. via apt) installiert wurde:
# Lösung: System-Node.js entfernen und nvm nutzen
sudo apt remove nodejs npm
# nvm installieren und Node.js damit installieren
curl -o- https://raw.githubusercontent.com/nvm-sh/nvm/v0.40.1/install.sh | bash
source ~/.bashrc
nvm install --lts
EACCES permission denied bei npm install
# Berechtigungen der npm-Cache-Dateien reparieren
sudo chown -R $(whoami) ~/.npm
# Oder: npm Cache löschen
npm cache clean --force
Nach nvm-Versionswechsel fehlen globale Pakete
# Globale Pakete von alter Version übernehmen
nvm install 24 --reinstall-packages-from=22
# Oder manuell einzelne Pakete installieren
nvm use 24
npm install -g typescript prettier eslint
node_modules Fehler / kaputte Installation
# node_modules komplett neu erstellen
rm -rf node_modules package-lock.json
npm install
Rollback: nvm entfernen
# nvm-Verzeichnis löschen
rm -rf "$HOME/.nvm"
# Shell-Konfiguration bereinigen
# ~/.bashrc: die nvm-Zeilen entfernen
nano ~/.bashrc
source ~/.bashrc
Danach ist Node.js nicht mehr verfügbar. Falls du Node.js über apt behalten möchtest:
sudo apt install nodejs npm
Fazit
# Schnellstart – das Wichtigste in 5 Befehlen:
curl -o- https://raw.githubusercontent.com/nvm-sh/nvm/v0.40.1/install.sh | bash
source ~/.bashrc
nvm install --lts # Node.js 24 LTS installieren
node --version # v24.13.1
npm init -y # neues Projekt starten
nvm ist der sauberste Weg, Node.js unter Linux zu betreiben: keine Root-Rechte, keine Versionskonflikte, kein Berechtigungs-Chaos bei globalen Paketen.
Node.js 24.x LTS (Active), nvm 0.40.1 | Tested on: Ubuntu 24.04 LTS, Debian 13 Trixie | Last updated: 2026-02-18