Installare Node.js e npm su Debian

Pubblicato il Aggiornato il 5 min di lettura

Node.js 10 e 12 sono da tempo senza supporto. Ecco come installi la versione LTS attuale insieme a npm su Debian, tramite NodeSource con chiave di firma in /etc/apt/keyrings.

Node.js è l'ambiente di runtime dietro innumerevoli applicazioni web, API e bot Discord. Su un server tuo lo installi in pochi minuti. In questa guida configuri Node.js insieme a npm su Debian 13, Debian 12 e Debian 11. Su Ubuntu valgono gli stessi comandi.

La cosa importante è scegliere la versione giusta. Le guide un tempo diffuse per Node.js 10 e Node.js 12 sono superate: entrambe le versioni non ricevono aggiornamenti di sicurezza da anni e non dovrebbero più girare su nessun server.

Quale versione di Node.js conviene installare?

Node.js esce due volte all'anno in una nuova versione principale. Solo i numeri di versione pari diventano una linea LTS (Long Term Support) e vengono poi mantenuti per circa tre anni. Le versioni dispari sono linee di sviluppo di breve durata e non sono pensate per i sistemi in produzione.

  • Node.js 24 LTS ("Krypton"): la scelta consigliata per i nuovi progetti e per i server in produzione.
  • Node.js 22 LTS: ancora molto diffusa, sensata se un'applicazione richiede espressamente questa versione.
  • Node.js 10 e 12: senza supporto rispettivamente dal 2021 e dal 2022. Da non usare più.

Nel dubbio controlla le indicazioni della tua applicazione. Molti progetti dichiarano la versione richiesta nel campo "engines" del loro file package.json.

Requisiti

  • Accesso root al tuo VPS oppure al tuo server root tramite SSH.
  • Un Debian aggiornato. Porta prima il sistema all'ultimo stato:
apt update && apt upgrade -y

Per aggiungere il repository ti servono inoltre alcuni strumenti standard:

apt install -y ca-certificates curl gnupg

Variante 1: Node.js dai repository Debian

La strada più semplice passa dai repository già inclusi nella distribuzione:

apt install nodejs npm -y

Il vantaggio: gli aggiornamenti arrivano automaticamente insieme al resto degli aggiornamenti di sistema. Lo svantaggio: i pacchetti Debian sono di solito una o due versioni principali indietro rispetto alla linea LTS attuale. Quale versione è disponibile sul tuo sistema lo vedi prima dell'installazione con:

apt-cache policy nodejs

A luglio 2026 i repository forniscono: Debian 13 "Trixie" Node.js 20.19, Debian 12 "Bookworm" Node.js 18.20, Ubuntu 24.04 Node.js 18.19, Ubuntu 22.04 Node.js 12.22. Se ti basta, hai già finito. Se invece ti serve una linea LTS attuale, usa la variante 2.

Variante 2: installare Node.js 24 LTS tramite NodeSource

NodeSource mette a disposizione repository ufficiali per Debian e Ubuntu. Così ottieni esattamente la versione principale che vuoi e continui a ricevere gli aggiornamenti tramite apt.

Registrare la chiave di firma

La vecchia strada con apt-key non esiste più. Da Debian 11 le chiavi di firma vanno in una directory dedicata sotto /etc/apt/keyrings/:

mkdir -p /etc/apt/keyrings
curl -fsSL https://deb.nodesource.com/gpgkey/nodesource-repo.gpg.key | gpg --dearmor -o /etc/apt/keyrings/nodesource.gpg

Aggiungere il repository e installare

Registra poi il repository. Con la variabile stabilisci la versione principale desiderata, qui la 24:

NODE_MAJOR=24
echo "deb [signed-by=/etc/apt/keyrings/nodesource.gpg] https://deb.nodesource.com/node_$NODE_MAJOR.x nodistro main" | tee /etc/apt/sources.list.d/nodesource.list

Per Node.js 22 imposta invece NODE_MAJOR=22. Segue poi l'installazione vera e propria:

apt update
apt install nodejs -y

npm è già contenuto nel pacchetto NodeSource. Non installare qui anche il pacchetto Debian "npm", altrimenti nasce un conflitto tra pacchetti.

La via breve con lo script di setup

NodeSource offre in più uno script che riunisce i due passaggi appena descritti:

curl -fsSL https://deb.nodesource.com/setup_22.x | bash -
apt install nodejs -y

Comodo, però esegui con i permessi di root uno script scaricato dalla rete. Sui server in produzione la strada con chiave di firma e repository resta la scelta più pulita.

Verificare l'installazione

Per concludere interroga entrambe le versioni:

node --version
npm --version

Se node restituisce un output che inizia con v22. e npm un numero di versione, l'installazione è riuscita.

Se vuoi usare yarn oppure pnpm: entrambi si attivano tramite Corepack, che è già incluso in Node.js, quindi non serve un'installazione separata:

corepack enable

Usare più versioni di Node.js in parallelo

Se su un server fai girare più applicazioni con requisiti diversi, ti aiuta il Node Version Manager (nvm). Installa Node.js nella directory dell'utente, così più versioni convivono una accanto all'altra e puoi passare dall'una all'altra progetto per progetto.

Dopo l'installazione di nvm (segui la guida del progetto ufficiale) bastano questi comandi:

nvm install 24
nvm use 24
nvm alias default 24

Importante: nvm appartiene sempre a un singolo utente. I servizi di sistema che girano con un altro utente non trovano questa installazione di Node.js. Per i servizi l'installazione da pacchetto è la strada più affidabile.

Passare a una versione più recente

Se più avanti hai bisogno di una nuova linea LTS, ti basta cambiare il numero di versione nel repository e aggiornare:

NODE_MAJOR=24
echo "deb [signed-by=/etc/apt/keyrings/nodesource.gpg] https://deb.nodesource.com/node_$NODE_MAJOR.x nodistro main" | tee /etc/apt/sources.list.d/nodesource.list
apt update && apt install nodejs -y

Dopo un salto di versione prova la tua applicazione. Tra due versioni principali le interfacce possono cambiare e i moduli nativi più vecchi vanno in certi casi ricompilati.

Errori frequenti

  • "E: Unable to locate package nodejs": dopo aver aggiunto il repository ti sei dimenticato di apt update.
  • Conflitto di pacchetti tra nodejs e npm: hai installato il pacchetto Debian "npm" accanto a quello di NodeSource. Rimuovi npm con apt remove npm, la versione adatta se la porta dietro Node.js stesso.
  • "NO_PUBKEY" oppure "signatures couldn't be verified": la chiave di firma non si trova sotto /etc/apt/keyrings/, oppure la riga del repository non contiene un riferimento signed-by corretto.
  • Viene ancora mostrata una versione vecchia: sul sistema sono rimasti i resti di un'installazione precedente. Cancella i vecchi file sotto /etc/apt/sources.list.d/ che rimandano a nodesource, poi installa di nuovo.
  • Un pacchetto npm si interrompe durante la compilazione: per i moduli nativi mancano gli strumenti di build. Installali con apt install -y build-essential python3.

Domande frequenti

Quale versione di Node.js conviene installare?
Per i nuovi progetti la linea LTS attuale, quindi Node.js 22. Node.js 20 è ancora molto diffusa e ha senso se un'applicazione richiede esattamente quella versione. Node.js 10 e 12 non ricevono aggiornamenti di sicurezza da anni.
Perché la versione del repository Debian è così vecchia?
Debian congela le versioni dei pacchetti al momento di ogni rilascio e da lì in poi distribuisce solo correzioni di sicurezza. Se ti serve una versione principale precisa, la strada passa dal repository NodeSource.
Devo installare npm separatamente?
No. Il pacchetto di NodeSource contiene già npm. Non installare in più il pacchetto Debian npm, altrimenti nasce un conflitto tra pacchetti.
Come passo più avanti a una versione più recente?
Cambia il numero di versione nel repository sotto /etc/apt/sources.list.d/, poi esegui di nuovo apt update e apt install nodejs. Prova subito dopo la tua applicazione, perché tra versioni principali le interfacce possono cambiare.
Perché la chiave di firma sta sotto /etc/apt/keyrings?
Il vecchio comando apt-key non esiste più. Da Debian 11 le chiavi di firma vanno in una directory dedicata e vengono associate al repository con l'opzione signed-by.

Node.js npm NodeSource Debian LTS nvm apt