Node.js unter Linux installieren – nvm, npm und die richtige LTS-Version

Node.js sauber unter Linux installieren mit nvm (Node Version Manager). Mehrere Versionen parallel, LTS vs. Current, npm-Grundlagen und häufige Fallstricke vermeiden.

6 min Lesezeit

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 ci statt npm 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

War dieser Artikel hilfreich?