Come installare l'ultimo NodeJS su Debian Jessie?


29

Ho appena installato NodeJS e NPM su Debian Jessie usando l'approccio raccomandato:

apt-get install curl
curl -sL https://deb.nodesource.com/setup | bash -
apt-get install -y nodejs

Tuttavia è una versione piuttosto vecchia (nodo v0.10.38 e npm 1.4.28).

Qualche suggerimento sul modo più semplice per installare versioni più recenti, ad esempio, attualmente il nodo è v0.12.4 e npm è 2.7.4? L'installazione dall'origine è il mio unico approccio?

Risposte:


48

È disponibile uno script di installazione per Node.js (vedere le istruzioni di installazione ):

# Adapt version number to the version you want
curl -sL https://deb.nodesource.com/setup_0.12 | sudo bash -
sudo apt-get install -y nodejs

Un piccolo commento: A mio modesto parere, è una molto cattiva idea curl | sudo bash. Stai eseguendo uno script che non hai verificato con i privilegi di root. E 'sempre meglio per scaricare lo script, leggere attraverso di essa, verificare la presenza di comandi dannosi, e dopo che , eseguirlo. Ma sono solo i miei due centesimi.

L'installazione può essere eseguita manualmente in pochi passaggi seguendo la procedura di installazione manuale :

  • Rimuovi vecchio PPA (se applicabile)
  • Aggiungi chiave ssh repository nodo
  • Aggiungi repository nodo a sources.list
  • aggiorna l'elenco dei pacchetti e installa utilizzando lo strumento apt preferito

5
ops, usalo, ma ora ci sono setup_4.x... redo curl e apt-get ok?
Peter Krauss,

3
Poiché potresti aver bisogno della versione più recente ed effettiva, ti consiglio di visitare il loro sito: github.com/nodesource/distributions .
seniorpreacher,

Perché non ti fideresti se proviene da una connessione sicura dalla stessa fonte da cui stai eseguendo i binari

@ acidzombie24 giusto, ma anche se ti fidi del codice per non essere malvagio, c'è sempre la possibilità di un errore nello script, o di uno script obsoleto, o la tua configurazione è un po 'esotica. O forse ti piace ordinare le tue fonti.list in qualche modo e gli script altrimenti. Ad ogni modo, penso anche che sia una cattiva pratica e i principianti (non sto mirando all'OP ma in generale) non dovrebbero essere incoraggiati a farlo. Soprattutto quando si esegue l'azione manualmente è molto più semplice che esaminare la sceneggiatura.
Jérôme,

12

Puoi scaricare l'ultima versione di Node ( 4.2.2) dal loro sito Web , invece di usare il pacchetto fornito da Debian ( 0.12). Questo significa anche che hai una versione aggiornata di npm. Non ho avuto problemi a farlo su Jessie.

Scarica il .tar.gzdal loro sito Web e cdin quella directory (il nome del file è ovviamente specifico per il mio download):

$ tar -xzvf node-v4.2.2-linux-x64.tar.gz
$ cd node-v4.2.2-linux-x64

Se dai un'occhiata nella cartella bin, vedrai i binari necessari per node e npm:

$ ls node-v4.2.2-linux-x64/bin 
node  npm

Ora rinominerei la cartella in qualcosa di un po 'più facile da tenere traccia di

$ mv node-v4.2.2-linux-x64 nodejs

Se non sei interessato a mantenere aggiornato il nodo, sposta semplicemente questa cartella in una delle posizioni del tuo cestino (io uso ~/bin) e salta il passaggio successivo.

Se desideri essere in grado di aggiornare facilmente la versione del tuo nodo, sposta la nodejscartella da qualche parte per tenerne traccia ( ~/nodejsforse?). Quindi si desidera creare un collegamento simbolico a una delle posizioni dei bin in modo che i binari possano essere utilizzati dalla shell senza scrivere il percorso completo.

Supponendo che tu abbia inserito la cartella nodejs nella tua home directory, ora puoi fare:

$ ln -s ~/nodejs ~/bin/nodejs

Ovviamente, questo può andare in qualsiasi posizione del cestino che desideri. Ho usato la mia directory home quindi è disponibile solo per me, ma potresti anche fare facilmente:

$ ln -s ~/nodejs /usr/local/bin/nodejs

Questo creerà un collegamento simbolico dalla cartella nodejs nella directory home alla directory bin (il che significa che eventuali aggiornamenti alla directory nella cartella home si riflettono nella cartella altrove tramite il collegamento simbolico ). Ora vuoi assicurarti che la cartella bin contenente la directory nodejs sia nella tua $PATHvariabile di ambiente , quindi apri il ~/.profilefile nella tua home directory. Vuoi aggiungere questo alla fine di quel file (cambiando il percorso, se non lo hai usato ~/bin/):

# Set the node PATH if it exists
if [ -d "$HOME/bin/nodejs/bin" ] ; then
    PATH="$HOME/bin/nodejs/bin:$PATH"
fi

Questo verificherà se la directory esiste e, in caso affermativo, aggiungila al tuo PERCORSO. Uso zshquindi ho appena aggiornato una riga in ~/.zshrc:

export PATH="$HOME/bin/nodejs/bin:$PATH"

Chiudi il terminale e riapri, quindi digita quanto segue per verificare:

$ node -v
v4.2.2

$ npm -v
2.14.7

Creando il collegamento sym, ora significa che in futuro puoi scaricarne uno nuovo .tar.gzdal sito Web Nodejs, estrarlo ~/nodejse i binari disponibili nella $PATH variabile di ambiente vengono automaticamente aggiornati.


Questo ha funzionato per me poiché ha anche dato un npm funzionante.
artfulrobot,

4

nel mio caso, ho eseguito i comandi di shell raccomandati:

curl -sL https://deb.nodesource.com/setup_6.x | sudo -E bash -
sudo apt-get install -y nodejs

il problema era che lo script bash non aggiornava il mio pin APT, quindi apt-get ha installato il vecchio pacchetto Debian predefinito dal sorgente debian.org e non da nodesource.com

verificare che questo sia il problema con apt-cache policy nodejs. dovresti vedere qualcosa di simile Candidate: 6.10.2-1nodesource1~jessie1e nonCandidate: 0.10.29~dfsg-2

per impostare la priorità dei pin su nodesource, aggiungere un file in /etc/apt/preferences.d/chiamato nodeo qualsiasi altra cosa con questo contenuto:

Package: nodejs
Pin: release o=Node Source
Pin-Priority: 1200

salva ed esegui apt-get cache update. quindi riprovare apt-cache policy nodejs. se il candidato sembra corretto, installare normalmenteapt-get install nodejs


apt-get cache updatetornato E: Invalid operation cachecosì ho corso sudo aptitude update.
user394

2

È possibile seguire la documentazione ufficiale node.js per installare la versione più recente con Gestione pacchetti.

Node.js v6:

curl -sL https://deb.nodesource.com/setup_6.x | sudo -E bash -
sudo apt-get install -y nodejs

Node.js v7:

curl -sL https://deb.nodesource.com/setup_7.x | sudo -E bash -
sudo apt-get install -y nodejs

In esecuzione, il nodo v7.5.0 e npm v4.1.2 sono stati installati sul mio sistema. Sia nodee nodejsalias sono state abilitate automaticamente per Node.


Utilizzando il nostro sito, riconosci di aver letto e compreso le nostre Informativa sui cookie e Informativa sulla privacy.
Licensed under cc by-sa 3.0 with attribution required.