Come si installa Node.JS su CentOS?


131

Ho trovato numerose istruzioni di installazione per Node.js ma sembrano tutte così complicate: non sono un super amministratore di sistema ma posso andare in giro. Ho yum sul sistema, ma non ho trovato alcun pacchetto node.js e non sono sicuro di come compilare il codice sul server o dove inserirlo.


Grazie per le ottime risposte a tutti. Credo che ora puoi installare sia nodejs che npm! fantastico
qodeninja


... con EPEL (istruzioni per l'installazione se non si dispone già del repository: rackspace.com/knowledge_center/article/… ).
geerlingguy,

Non credo che la roba EPEL funzioni più o meno in Centos 7.
jcollum

Risposte:


139
su - 
yum install gcc-c++ openssl-devel
cd /usr/local/src
wget http://nodejs.org/dist/node-latest.tar.gz
tar zxvf node-latest.tar.gz
(cd into extracted folder: ex "cd node-v0.10.3")
./configure
make
make install

Nota che questo richiede Python 2.6+ per usare ./configuresopra. È possibile modificare il file "configura" in modo che punti alla python2.7riga 1, se necessario.

Per creare un pacchetto RPM, è possibile utilizzare FPM :

# wget http://nodejs.org/dist/node-latest.tar.gz
# tar zxvf node-latest.tar.gz
(cd into extracted folder: ex "cd node-v0.10.3")
# ./configure --prefix=/usr/
# make
# mkdir /tmp/nodejs
# make install DESTDIR=/tmp/nodejs/
# tree -L 3 /tmp/nodejs/
/tmp/nodejs/
└── usr
    ├── bin
    │   ├── node
    │   ├── node-waf
    │   └── npm -> ../lib/node_modules/npm/bin/npm-cli.js
    ├── include
    │   └── node
    ├── lib
    │   ├── dtrace
    │   ├── node
    │   └── node_modules
    └── share
        └── man

Ora crea il nodejspacchetto:

# fpm -s dir -t rpm -n nodejs -v 0.8.18 -C /tmp/nodejs/ usr/bin usr/lib

Quindi installare e verificare la versione:

# rpm -ivh nodejs-0.8.18-1.x86_64.rpm 
Preparing...                ########################################### [100%]
   1:nodejs                 ########################################### [100%]

# /usr/bin/node --version
v0.8.18

Fonte: https://github.com/jordansissel/fpm/wiki/PackageMakeInstall


3
ma supponendo che io abbia installato correttamente? quale id non faccio?
qodeninja,

9
Avevo bisogno di includere yum install gcc-c ++
Yehosef,

17
Sebbene questo sia tecnicamente corretto, per qualsiasi tipo di manutenibilità o ripetibilità, si consiglia vivamente di gestire i pacchetti tramite RPM (o qualunque sia il pacchetto della distribuzione) piuttosto che creare e installare manualmente dal sorgente su ogni macchina dove è necessario. Alcune delle risposte sottostanti si collegano a pacchetti predefiniti.
Jason Antman,

5
Cercare di gestire Node.JS e qualsiasi suo ecosistema tramite RPM in questo momento è un esercizio di futilità, e lo dico come qualcuno che ha eseguito brevemente un repository yum contenente Node e un numero di pacchetti di moduli.
jgoldschrafe,

5
@IsaacRabinovitch Hanno aggiunto un ternario if, che non è avvenuto fino a Python 2.5. Poiché CentOS segue il percorso RHEL di aggancio del sistema Python a una versione di 2.4 con patch personalizzate, la mia soluzione era quella di yum install python26 python26-develeseguire e quindi eseguire python26 configureinvece di ./configure. Quindi, dato che Makefileesegue anche gli script Python, ho definito la PYTHONvariabile lì dentro per essere python26invece di python. Inoltre, avrai bisogno di g++lì, quindi se non l'hai già fatto, dovresti yum install gcc-++.
Hank Gay

64

Se hai CentOS 6.x e hai abilitato il repository EPEL , puoi usare yum per installare node / npm:

$ sudo yum install npm

Al termine dell'installazione, verificare che il nodo sia configurato correttamente:

$ node -v

(Dovrebbe restituire qualcosa di simile v0.10.36).

Se si desidera versioni successive di Node.js (ad esempio 4.x, 5.x, ecc.), È possibile utilizzare il repository yum Nodesource anziché EPEL.


2
Questo ha funzionato magnificamente sul mio sistema CentOS 6.4 e mi ha dato nodo e npm. Ho il nodo 0.10.13, solo un po 'fuori dall'ultimo tarball src 0.10.15. Sembra che questo abbia bisogno di più voti per distinguersi in quanto supera l'opzione 'installa da sorgente'.
Neek,

1
Seguire questo per installare il repository EPEL.
Lee Chee Kiam,

1
per aggiornare abilitare l'esecuzione del repository epel yum install -y epel-release, quindi è possibile installare node e npm con yum.
svassr,

Non sono riuscito a far funzionare l'epel o l'epel-release con yum per v4.2.x. La risposta nave.sh di seguito ha funzionato magnificamente.
jcollum,

1
L'installazione tramite yum mi dà una versione molto vecchia v0.10.42 ... Come posso installare Node tramite yum / rpm per ottenere l'ultima versione (attualmente 5.9.0)?
dokaspar,

27

L'essenza "Installazione di Node.js tramite gestore pacchetti" NON contiene più istruzioni per l'installazione di nodejs su CentOS. A partire da Fedora 18, nodejs diventa parte del repository standard. Provo il repository "epel-fedora-nodejs" e non lo trovo più aggiornato, lasciando la versione alla 0.6.0 obsoleta.

La buona notizia è che abbiamo una nave , un ambiente virtuale per il nodo, per aiutarci.

https://github.com/isaacs/nave

L'installazione di nodejs ora è semplicissima.

$ wget https://raw.github.com/isaacs/nave/master/nave.sh
$ chmod +x nave.sh
$ ./nave.sh install 0.8.8
$ ./nave.sh use 0.8.8
$ node -v  
v0.8.8

Nel file nave.sh, potrebbe essere necessario modificare gli URL locali in modo che corrispondano all'ultima struttura dist di nodejs. Per 0.11.0 ho cambiato nave.sh per avere il seguente URL

" http://nodejs.org/dist/v $ version / node-v $ version-linux-x64.tar.gz"


1
nodejs.tchol.org è morto ora
explunit il

@explunit Ho appena aggiornato la risposta. Per favore, prova navata.
user974312,

Cordiali saluti Questo sembra installarlo solo per questo utente. Se vuoi installarlo per l'intero sistema: ./nave.sh usemain <la tua versione>
awl

"nodejs diventa parte del repository standard" - su CentOS 7 è incredibilmente obsoleto. La versione installata è v10.x (su CentOS che utilizza comunque il nostro reparto IT).
jcollum,

13

Per CentOS

yum install gcc-c++ make git
cd /usr/local/src/
git clone git://github.com/joyent/node.git
cd node
./configure
make
make install

2
Dovresti usare una versione rilasciata e non la versione github, a meno che tu non abbia intenzione di contribuire al progetto del nodo.
BT,

11

[Modifica] Grazie David per aver sottolineato nei commenti qui sotto che il sito nodejs.tchol.org ora punta a un sito spam (sic!) .. Quindi questa risposta non funziona più, non usarla!

Posso confermare che il metodo spiegato da Chris nella sua soluzione funziona in CentOS 5.4 (l'ho fatto un minuto fa :))

wget http://nodejs.tchol.org/repocfg/el/nodejs-stable-release.noarch.rpm
yum localinstall --nogpgcheck nodejs-stable-release.noarch.rpm
yum install nodejs-compat-symlinks npm

PS: ovviamente devi essere root (o usare sudo) per installarlo ..

Oltre all'installazione dal sorgente (che è sempre un'opzione) forse c'è ancora un'alternativa: qui ho letto che "node.js è stato accettato in Fedora Rawhide a partire da dicembre 2012 e sarà disponibile in Fedora 18." , quindi forse finirà per entrare nei repository CentOS standard

Darò un'occhiata a questo ..


3
Questo ha funzionato magnificamente su CentOS 6. Grazie!
KyleFarris,

12
"nodejs.tchol.org" è morto ora
David Newcomb il

2
Quindi dovresti solo installare dal sorgente. Non aver paura.
John Hunt,

2
@JohnHunt L'installazione dall'origine significa che non è più possibile disinstallare in modo pulito. Ho avuto lo stesso problema con Ruby. Fortunatamente, ho potuto semplicemente ripristinare l'immagine della VM ... L'installazione dal sorgente significa che è necessario avere una conoscenza approfondita del pacchetto che si sta installando. Considerando che ci sono migliaia di pacchetti Linux, questa non è un'opzione!
Christian,

1
"Il link sopra"? Le risposte sono ordinate in base al voto e quelle di Chris ora sono sotto le tue.
Isaac Rabinovitch il

10

Come notato sopra, "tchol.org" non c'è più, lasciando la gente di CentOS alla ricerca sull'abbandono dell'uso di un gestore di pacchetti o sul passaggio a un altro sistema operativo. Ho stretto un patto con me stesso contro ogni fare il primo (di nuovo) su tutte le caselle tranne quelle sperimentali / di sviluppo.

Fortunatamente, ci sono ancora rpms disponibili su: http://patches.fedorapeople.org/oldnode/stable/el6/x86_64/

Ignora semplicemente il numero di giri per il programma di installazione repo, che indirizza yum al sito defunto. Questo dovrebbe farci guadagnare un po 'di tempo, a meno che / finché non diventino troppo obsoleti.

Terrò gli occhi aperti per i nuovi repository e rispondo se li trovo.


Direi che la versione 0.6 nel tuo link è già abbastanza obsoleta. Sembra che non ci siano davvero buone opzioni per RHEL / CentOS in questo momento, il che è strano considerando che Red Hat stesso offre PaaS
node.js

8

Questo ha funzionato per me su CentOS 5.7:

yum install openssl-devel 
yum install python27
yum install gcc-c++
cd /usr/local/src
wget http://nodejs.org/dist/node-latest.tar.gz
tar zxvf node-latest.tar.gz
cd node-v[tab]
python2.7 configure
make PYTHON=python2.7
make install

3
Devo usare Python 2.6 sul mio CentOS 5.10, poiché Python 2.7 non è in repository.
oh,

7

C'è un altro approccio che non ho visto elencato in nessuna delle altre risposte, e cioè usare le distribuzioni binarie per Linux che sono state pubblicate dalla 0.8.6

Ecco lo script che uso:

# get the latest stable binary 
latest_node=$(curl http://nodejs.org/dist/latest/SHASUMS.txt | grep 'linux-x64.tar.gz' | awk '{ print $2 }')
wget -O ~/nodestable.tar.gz http://nodejs.org/dist/latest/$latest_node
cd /usr/local/
sudo tar xzvf ~/nodestable.tar.gz --strip=1

Oppure, se si desidera una versione specifica (ad esempio, rimanere sulla serie 0.8):

wget http://nodejs.org/dist/v0.8.22/node-v0.8.22-linux-x64.tar.gz
cd /usr/local/
sudo tar xzvf ~/node-v0.8.22-linux-x64.tar.gz --strip=1

E per me su CentOS 6.3, ho dovuto aggiungere i seguenti collegamenti in modo che i comandi node e npm funzionassero sia dall'utente normale che da sudo. Potrebbe non essere necessario a seconda della versione.

sudo ln -s /usr/local/bin/node /usr/bin/node
sudo ln -s /usr/local/lib/node /usr/lib/node
sudo ln -s /usr/local/bin/npm /usr/bin/npm
sudo ln -s /usr/local/bin/node-waf /usr/bin/node-waf

Francamente, la situazione per node.js su CentOS / RHEL è piuttosto negativa, poiché nessuno dei repository include node.js (vedere la domanda correlata qui ). Questa risposta presenta gli stessi svantaggi menzionati in precedenza per la compilazione dalla fonte.


7

Le risposte sopra sono obsolete

COME RADICE

curl -sL https://rpm.nodesource.com/setup | bash -
yum install -y nodejs

e il gioco è fatto.

verifica l'installazione con

node -v

La mia versione di curl non sembra gradire l'Autorità di firma del certificato SSL dell'URL, quindi lo script fallisce silenziosamente. Puoi superarlo usando l'opzione curl -k.
Spike Williams,

Inoltre, dopo aver aggiunto -k al comando arricciatura sopra, è anche necessario aggiornare il riferimento ai download arricciati da quel dominio nello script "setup" che viene scaricato. Quindi esegui quello script manualmente usando bash.
Spike Williams,

5

Nessuno menzionato nvmper gestire (più) in modo semplice e sicuro installazioni di nodi https://github.com/creationix/nvm ? Lo trovo così utile.

Anche utile per costruire un file di rilascio Node albero e pacchetti rpm in modo personalizzato senza scripting troppo, latest-node, wget, ./configure, make, make installbla bla.

nvm install 0.10.9

Scaricherà i file binari o compilerà il codice sorgente in base alla versione.


c'è un'installazione offline?
patel

4

Esegui come root su RHEL, CentOS o Fedora, per Node.js v4 LTS Argon:

curl --silent --location https://rpm.nodesource.com/setup_4.x | bash -

In alternativa per Node.js v5:

curl --silent --location https://rpm.nodesource.com/setup_5.x | bash -

In alternativa per Node.js 0.10:

curl --silent --location https://rpm.nodesource.com/setup | bash -

Quindi installare, come root:

yum -y install nodejs

fonte: https://nodejs.org/en/download/package-manager/


L'unica risposta che funziona per CentOS 7.2. E ha funzionato così rapidamente e perfettamente.!
scrivere a Tohuhuwan il

raccomandazione: visitare il progetto NVM su GitHub e ottenere le istruzioni definitive dal file README: github.com/creationix/nvm#installation
Kay V

3

Ho alcune istruzioni piuttosto semplici, insieme a un file .spec qui:

http://www.chrisabernethy.com/installing-node-js-on-centos-redhat/

Compilerai questo dal sorgente, quindi dovrai assicurarti di avere tutti i pacchetti necessari per farlo sul tuo sistema (gcc e amici). Questo set di istruzioni è per la creazione di un RPM, quindi se mancano i pacchetti richiesti, rpmbuild ti farà sapere quali devono essere installati per primi.


1
Benvenuti in Server Fault! Sebbene ciò possa teoricamente rispondere alla domanda, sarebbe preferibile includere qui le parti essenziali della risposta e fornire il collegamento come riferimento.
user9517

Inoltre, il link si riferisce a / usr / src / redhat, che non sembra esistere nella mia installazione di CentOS 5 (è su / usr / local / src se ho capito bene)
Kato

2
Le modifiche recenti richiederebbero inoltre alle persone di aggiornare l'installazione di Python (o la configurazione non funzionerà su nessun server CentOS che utilizza ancora Python 2.4). Considerare di aggiornare le informazioni e inserirle qui?
Tim Post

3

Avrai anche bisogno di npm

git clone https://github.com/isaacs/npm.git
cd npm
sudo make install

non più, viene fornito con il nodo.
ThomasReggi,

3

Puoi usare nodebrew . $ curl -L git.io/nodebrew | perl - setup $ export PATH=$HOME/.nodebrew/current/bin:$PATH $ source ~/.bashrc $ nodebrew install-binary latest $ nodebrew use latest $ node -v


2

Per Ubuntu, questo ha funzionato per me per la versione 0.4.10

cd /usr/local/src/
sudo wget http://nodejs.org/dist/node-v0.4.10.tar.gz
sudo tar zxvf node-v0.4.10.tar.gz 
cd node-v0.4.10/
sudo ./configure 
sudo make
sudo make install

la domanda è per CentOS
jcollum

2

ecco il mio Dockerfile che ha installato il nodo v0.10.36 in centOS 7

FROM centos:7

RUN    yum -y update
RUN    yum -y install vi, vim, unzip, tar
RUN    yum -y install wget, curl, git

RUN    yum -y install epel-release
RUN    yum -y install npm

2

La mia risposta per la versione 4+:

yum -y install wget
wget https://nodejs.org/dist/v4.0.0/node-v4.0.0-linux-x64.tar.gz
tar xzf node-v4.0.0-linux-x64.tar.gz -C /usr/local
rm -rf node-v4.0.0-linux-x64.tar.gz
mv /usr/local/node-v4.0.0-linux-x64 /usr/local/node
ln -s /usr/local/node/bin/node /usr/bin/node
ln -s /usr/local/node/bin/npm /usr/bin/npm

Controlla nella cartella https://nodejs.org/dist/latest/ per trovare il link per il download dell'ultima versione.


Questo mi ha salvato sul server CentOS su cui è in esecuzione Plesk - la creazione dell'ultima versione (5) dal sorgente fallisce poiché gcc è così obsoleto. Aggiornerei gcc ma di solito aggiornando qualsiasi cosa manualmente tramite yum trasforma Plesk in un bambino urlante.
twistedpixel,

c'è un tar per 4.x stabile? La risposta sarà migliore se sopravvive ad alcune modifiche di versione.
jcollum,

Ho modificato la mia risposta per includere un collegamento all'ultima cartella di distribuzione in cui è possibile trovare l'installazione specifica per la distribuzione.
Evan Siroky,

1

Il codice seguente ha funzionato abbastanza bene su CentOS 6

wget http://nodejs.tchol.org/repocfg/el/nodejs-stable-release.noarch.rpm
yum localinstall --nogpgcheck nodejs-stable-release.noarch.rpm
yum install nodejs-compat-symlinks npm

Non funziona più, http://nodejs.tchol.org non è più online.


Funzionava. Quella macchina non esiste più sembra.
rox0r,

1

Ho passato il compito di fare questa installazione da solo su RHEL 5.8 non molto tempo fa. Sfortunatamente, con nodejs.tchol.org non in linea, l'unica opzione è costruirlo dal sorgente.

Tuttavia, il processo di compilazione è diventato un po 'complicato in quanto lo script di compilazione prevede codice Python che non funziona con la versione predefinita di Python su RHEL. Dopo un sacco di tentativi ed errori (e molti googling), ho trovato questo post sul blog che sostanzialmente descrive un passo per passare alle seguenti attività richieste.

un. Installa Python 2.6 b. Imposta quella versione di Python come versione alternativa, quindi impostala come predefinita c. configurare e installare node.js d. Ripristino di Python alla versione 2.4 predefinita.

La chiave è che dovresti tornare a Python 2.4 in seguito; altrimenti, cose semplici come yum falliranno.

http://www.robeesworld.com/blog/31/installing_node_js_0_8_under_centos_5_8


1

Dopo l'installazione usando la risposta più votata, non sono stato in grado di installare alcun modulo globale (-g) senza le autorizzazioni Sudo. L'aggiornamento di NPM ha mostrato errori. Di seguito il metodo ha funzionato perfettamente per me, non sono necessarie autorizzazioni SU o SUDO.

Ho installato Node.js e NPM usando il metodo seguente preso da ( https://gist.github.com/isaacs/579814 ) ma ho modificato due righe di comandi come da avviso da un commento pubblicato da deesejohn in quella pagina.

cd
sudo yum install gcc-c++
echo 'export PATH=$HOME/local/bin:$PATH' >> ~/.bashrc
. ~/.bashrc
mkdir ~/local
mkdir ~/node-latest-install
cd ~/node-latest-install
curl http://nodejs.org/dist/node-latest.tar.gz | tar xz --strip-components=1
./configure --prefix=$HOME/local
make install
curl -L https://www.npmjs.org/install.sh | sh

Controlla la versione installata usando node -venpm -v

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.