Comment installez-vous Node.JS sur CentOS?


131

J'ai trouvé de nombreuses instructions d'installation pour Node.js, mais elles semblent toutes si compliquées. Je ne suis pas un administrateur super-système mais je peux me déplacer. J'ai yum sur le système, mais je n'ai trouvé aucun paquet node.js, et je ne sais pas comment compiler le code sur le serveur ni où le mettre.


Merci pour les bonnes réponses à tous. Je pense que vous pouvez maintenant installer à la fois nodejs et npm! génial
qodeninja


... avec EPEL (instructions d'installation si vous ne possédez pas déjà le référentiel: rackspace.com/knowledge_center/article/… ).
geerlingguy

Je ne pense pas que le système EPEL fonctionne plus ou ne fonctionne plus dans Centos 7.
jcollum

Réponses:


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

Notez que cela nécessite l'utilisation de Python 2.6+ ./configureci-dessus. Vous pouvez modifier le fichier "configure" pour qu'il pointe vers la python2.7ligne 1 si nécessaire.

Pour créer un package RPM, vous pouvez utiliser 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

Maintenant, faites le nodejspaquet:

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

Puis installez et vérifiez la version:

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

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

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


3
mais c'est en supposant que j'ai fait installer le droit? quelle id je ne fait pas?
Qodeninja

9
J'avais besoin d'inclure yum install gcc-c ++
Yehosef

17
Bien que cela soit techniquement correct, quelle que soit la maintenabilité ou la répétabilité, il est fortement recommandé de gérer les paquetages via RPM (ou quel que soit l'emballage de votre distribution) plutôt que de construire et d'installer manuellement à partir de la source sur chaque machine où cela est nécessaire. Un certain nombre de réponses ci-dessous sont liées à des packages prédéfinis.
Jason Antman

5
Essayer de gérer Node.JS et tout son écosystème via RPM maintenant est un exercice futile, et je le dis en tant que personne qui a brièvement géré un repo yum contenant Node et un certain nombre de packages de modules.
Jgoldschrafe

5
@IsaacRabinovitch Ils ont ajouté un ternaire if, qui n'a pas été créé avant Python 2.5. Étant donné que CentOS suit le chemin RHEL consistant à rattacher le système Python à une version de la version 2.4 avec correctif personnalisé, ma solution consistait à yum install python26 python26-develexécuter puis exécuter à la python26 configureplace de ./configure. Puis, comme les Makefilescripts Python sont également exécutés, j’ai défini la PYTHONvariable à la python26place de python. En outre, vous allez avoir besoin g++de là, alors si vous ne l'avez pas déjà fait, vous devriez le faire yum install gcc-++.
Hank Gay

64

Si vous avez CentOS 6.x et avez activé le référentiel EPEL , vous pouvez utiliser yum pour installer node / npm:

$ sudo yum install npm

Une fois l’installation terminée, vérifiez que le noeud est correctement configuré:

$ node -v

(Devrait retourner quelque chose comme v0.10.36).

Si vous souhaitez des versions ultérieures de Node.js (par exemple, 4.x, 5.x, etc.), vous pouvez utiliser le référentiel Nodesource yum au lieu de EPEL.


2
Cela a fonctionné à merveille sur mon système CentOS 6.4 et m'a donné noeud et npm. J'ai le noeud 0.10.13, juste un peu en retrait de la dernière archive src 0.10.15. Il semble que ce besoin de vote supplémentaire se démarque car il dépasse l'option 'installer à partir de la source'.
Neek

1
Suivez ceci pour installer le repo EPEL.
Lee Chee Kiam

1
pour mettre à jour l’activation du référentiel epel yum install -y epel-release, vous pouvez installer node et npm avec yum.
svassr

Je ne pouvais pas faire fonctionner epel ou epel-release avec yum pour v4.2.x. La réponse nave.sh ci-dessous a fonctionné à merveille.
mardi

1
L'installation via yum me donne une très ancienne version v0.10.42 ... Comment puis-je installer Node via yum / rpm pour obtenir la dernière version (actuellement la version 5.9.0)?
dokaspar

27

L'essentiel "Installer Node.js via le gestionnaire de paquets" ne contient plus d'instructions pour installer nodejs sur CentOS. Depuis Fedora 18, nodejs fait partie du référentiel standard. J'essaie le dépôt "epel-fedora-nodejs" , et trouve qu'il n'est plus mis à jour, laissant la version obsolète 0.6.0.

La bonne nouvelle est que nous avons la nef , un environnement virtuel pour nœud, pour nous aider.

https://github.com/isaacs/nave

L'installation de nodejs est extrêmement simple maintenant.

$ 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

Dans le fichier nave.sh, vous devrez peut-être modifier les adresses URL locales afin qu'elles correspondent à la dernière structure dist de nodejs. Pour 0.11.0 j'ai changé le nave.sh pour avoir l'URL suivante

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


1
nodejs.tchol.org est mort
explunit

@explunit Je viens de mettre à jour la réponse. S'il vous plaît essayer la nef.
user974312

FYI Cela semble l'installer pour cet utilisateur uniquement. Si vous souhaitez l’installer pour l’ensemble du système: ./nave.sh usemain <votre version>
awl

"nodejs devient une partie du référentiel standard" - sur CentOS 7, il est incroyablement obsolète. La version installée est la version 10.x (sur le CentOS que notre service informatique utilise de toute façon).
mardi

13

Pour 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
Vous devriez utiliser une version publiée et non la version de github, sauf si vous envisagez de contribuer au projet de nœud.
BT

11

[Edit] Merci David pour avoir souligné dans les commentaires ci-dessous que le site nodejs.tchol.org pointe maintenant vers un site de spam (sic!) .. Donc, cette réponse ne fonctionne plus, ne l'utilisez pas!

Je peux confirmer que la méthode que Chris a expliquée dans sa solution fonctionne dans CentOS 5.4 (je l'ai déjà fait il y a une minute :))

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: bien sûr, vous devez être root (ou utiliser sudo) pour pouvoir l'installer.

Outre l’installation à partir du source (ce qui est toujours une option), il existe peut-être encore une alternative: je lis ici que "node.js a été accepté dans Fedora Rawhide à partir de décembre 2012 et sera disponible dans Fedora 18". , alors peut-être qu'il finira par entrer dans les référentiels CentOS standard

Je vais regarder ça ..


3
Cela a fonctionné à merveille sur CentOS 6. Merci!
KyleFarris

12
"nodejs.tchol.org" est mort maintenant
David Newcomb

2
Par conséquent, vous devriez simplement installer à partir des sources. N'aie pas peur.
John Hunt

2
@JohnHunt L'installation à partir des sources signifie que vous ne pouvez plus en désinstaller proprement. J'ai eu le même problème avec Ruby. Heureusement, je pouvais simplement restaurer l’image de la machine virtuelle ... L’installation à partir du source signifie que vous devez bien comprendre le paquet que vous installez. Étant donné qu'il existe des milliers de paquets Linux, ce n'est pas une option!
Christian

1
"Le lien ci-dessus"? Les réponses sont triées par vote et Chris est maintenant inférieur au vôtre.
Isaac Rabinovitch

10

Comme indiqué ci-dessus, "tchol.org" a disparu, ce qui laisse les personnes de CentOS à la recherche d'une solution consistant à abandonner l'utilisation d'un gestionnaire de paquets ou à passer à un autre système d'exploitation. J'ai fait un pacte avec moi-même contre tout faire le précédent (à nouveau) sur toutes les boîtes / dev expérimentales.

Heureusement, il reste des RPM disponibles sur: http://patches.fedorapeople.org/oldnode/stable/el6/x86_64/

Ignorez simplement le nombre de tours par minute de l'installateur, qui dirige yum vers le site défunt. Cela devrait nous faire gagner un peu de temps, à moins que / jusqu'à ce qu'ils ne deviennent trop obsolètes.

Je garderai l'œil ouvert pour les nouvelles pensions, et posterai si je les trouve.


Je dirais que la version 0.6 de votre lien est déjà assez obsolète. Il semble qu’il n’y ait pas vraiment de bonnes options pour RHEL / CentOS pour le moment, ce qui est étrange si on considère que Red Hat lui-même propose node.js PaaS
expliquez

8

Cela a fonctionné pour moi sur 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
Je dois utiliser python 2.6 sur mon CentOS 5.10, car python 2.7 n'est pas dans le repo.
ohho

7

Il y a une autre approche que je n'ai pas vue énumérée dans aucune des réponses, à savoir utiliser les distributions binaires pour Linux publiées depuis la version 0.8.6.

Voici le script que j'utilise:

# 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

Ou, si vous voulez une version spécifique (par exemple pour rester sur la série 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

Et pour moi sur CentOS 6.3, je devais ajouter les liens suivants afin que les commandes node et npm fonctionnent depuis un utilisateur normal ou depuis sudo. Peut-être pas nécessaire selon votre version.

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

Franchement, la situation de node.js sous CentOS / RHEL est plutôt mauvaise car aucun des dépôts n’inclut node.js (voir la question connexe ici ). Cette réponse présente les mêmes inconvénients que ceux mentionnés précédemment pour la compilation à partir des sources.


7

Les réponses ci-dessus sont obsolètes

Comme racine

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

et vous avez terminé.

vérifiez votre installation avec

node -v

Ma version de curl ne semble pas aimer le signataire du certificat SSL de l'URL et le script échoue donc en silence. Vous pouvez le dépasser en utilisant l'option curl -k.
Spike Williams

De même, après avoir ajouté -k à la commande curl ci-dessus, vous devez également mettre à jour la référence aux téléchargements curl de ce domaine dans le script "setup" qui est téléchargé. Puis exécutez ce script manuellement en utilisant bash.
Spike Williams

5

Personne n'a mentionné nvmpour gérer (plusieurs) en toute sécurité et facilement les installations de nœuds https://github.com/creationix/nvm ? Je le trouve si utile.

Même utile pour créer un fichier de version Node arbre et des paquets rpm sans scripts personnalisés de manière trop latest-node, wget, ./configure, make, make installbla bla.

nvm install 0.10.9

Va télécharger les fichiers binaires ou compiler le code source en fonction de la version.


Existe-t-il une installation hors ligne?
amit patel

4

Exécuter en tant que root sur RHEL, CentOS ou Fedora, pour Node.js v4 LTS Argon:

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

Alternativement pour Node.js v5:

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

Alternativement pour Node.js 0.10:

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

Puis installez, en tant que root:

yum -y install nodejs

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


La seule réponse qui fonctionne pour CentOS 7.2. Et a travaillé si vite et parfaitement.
writeToBhuwan

recommandation: visitez le projet NVM sur GitHub et obtenez les instructions définitives du fichier README: github.com/creationix/nvm#installation
Kay V

3

J'ai quelques instructions assez simples, avec un fichier .spec ici:

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

Vous compilerez ceci à partir des sources, vous devrez donc vous assurer que vous avez tous les paquetages nécessaires pour le faire sur votre système (gcc et amis). Ce jeu d’instructions est destiné à la construction d’un RPM. Ainsi, si vous manquez un paquet requis, rpmbuild vous indiquera ceux qu’il vous faut installer en premier.


1
Bienvenue sur Server Fault! Bien que cela puisse théoriquement répondre à la question, il serait préférable d’inclure ici les parties essentielles de la réponse et de fournir le lien à titre de référence.
user9517

En outre, le lien fait référence à / usr / src / redhat, qui ne semble pas exister dans mon installation de CentOS 5 (c'est dans / usr / local / src si je comprends bien)
Kato

2
Les dernières modifications obligeraient également les utilisateurs à mettre à jour leur installation Python (ou la configuration ne fonctionnera pas sur les serveurs CentOS utilisant encore Python 2.4). Envisagez de rafraîchir les informations et de les placer ici?
Tim Post

3

Vous aurez aussi besoin de npm

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

non plus amy il vient avec noeud.
ThomasReggi

3

Vous pouvez utiliser 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

Pour Ubuntu, cela a fonctionné pour moi pour la version 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 question est pour CentOS
jcollum

2

voici mon Dockerfile qui a installé le noeud v0.10.36 dans 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

Ma réponse pour la version 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

Consultez le dossier https://nodejs.org/dist/latest/ pour trouver le lien de téléchargement de la dernière version.


Cela m’a sauvé sur le serveur CentOS exécutant Plesk - la construction de la dernière version (5) à partir de la source échoue, car gcc est obsolète. Je mettrais à jour gcc mais habituellement, mettre à jour quoi que ce soit manuellement via yum fait de Plesk un enfant qui hurle.
twistedpixel

y a-t-il un goudron pour 4.x stable? La réponse sera meilleure si elle survit à quelques changements de version.
jcollum

J'ai modifié ma réponse afin d'inclure un lien vers le dernier dossier de distribution où vous pouvez trouver l'installation spécifique à la distribution.
Evan Siroky

1

Le code ci-dessous a bien fonctionné sous 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

Cela ne fonctionne plus, http://nodejs.tchol.org n'est plus en ligne.


Cela fonctionnait. On dirait que cette machine n'existe plus.
Rox0r

1

J'ai effectué cette installation moi-même sur RHEL 5.8 il n'y a pas si longtemps. Malheureusement, avec nodejs.tchol.org hors ligne, la seule option est de le construire à partir des sources.

Cependant, le processus de construction est devenu un peu compliqué, car le script de construction implique un code Python qui ne fonctionne pas avec la version par défaut de Python sur RHEL. Après beaucoup d'essais et d'erreurs (et beaucoup de recherches sur Google), j'ai trouvé ce billet de blog qui décrit en gros une étape à suivre des tâches suivantes.

une. Installez Python 2.6 b. Configurez cette version de python en tant que version alternative, puis définissez-la par défaut c. configurer et installer node.js d. Revenir à la version 2.4 par défaut de Python.

La clé est que vous devriez revenir à Python 2.4 ensuite; sinon, des choses simples comme miam vont échouer.

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


1

Après l'installation à l'aide de la réponse la mieux notée, je n'ai pas pu installer de module global (-g) sans les autorisations Sudo. La mise à jour du NPM a montré des erreurs. La méthode ci-dessous fonctionne parfaitement pour moi, il n’est pas nécessaire d’obtenir des autorisations SU ou SUDO.

J'ai installé Node.js et NPM en utilisant la méthode ci-dessous prise à partir de ( https://gist.github.com/isaacs/579814 ), mais j'ai modifié deux lignes de commandes conformément au conseil d'un commentaire posté par deesejohn dans cette page.

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

Vérifier la version installée en utilisant node -vetnpm -v

En utilisant notre site, vous reconnaissez avoir lu et compris notre politique liée aux cookies et notre politique de confidentialité.
Licensed under cc by-sa 3.0 with attribution required.