¿Cómo instalas Node.JS en CentOS?


131

He encontrado numerosas instrucciones de instalación para Node.js, pero todas parecen muy complicadas: no soy un administrador súper del sistema, pero puedo desplazarme. Tengo yum en el sistema, pero no encontré ningún paquete node.js, y no estoy seguro de cómo compilar código en el servidor o dónde colocarlo.


Gracias por las excelentes respuestas a todos. ¡Creo que puedes instalar tanto nodejs como npm ahora! impresionante
qodeninja


... con EPEL (instale las instrucciones si aún no tiene el repositorio: rackspace.com/knowledge_center/article/… ).
geerlingguy

No creo que las cosas de EPEL funcionen más, o no funcionan en Centos 7.
jcollum

Respuestas:


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

Tenga en cuenta que esto requiere Python 2.6+ para usar ./configurearriba. Puede modificar el archivo "configurar" para que apunte a la python2.7línea 1 si es necesario.

Para crear un paquete RPM, puede usar 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

Ahora haz el nodejspaquete:

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

Luego instale y verifique la versión:

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

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

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


3
pero eso es asumiendo que tengo instalado ¿verdad? ¿Qué identificación no hago?
qodeninja

99
Necesitaba incluir yum install gcc-c ++
Yehosef

17
Si bien esto es técnicamente correcto, para cualquier tipo de mantenimiento o repetibilidad, se recomienda ALTAMENTE administrar los paquetes a través de RPM (o lo que sea el empaque de su distribución) en lugar de construir e instalar manualmente desde la fuente en cada máquina donde sea necesario. Algunas de las respuestas a continuación enlazan con paquetes preconstruidos.
Jason Antman

55
Intentar administrar Node.JS y cualquiera de su ecosistema a través de RPM en este momento es un ejercicio inútil, y lo digo como alguien que ejecutó brevemente un repositorio de yum que contiene Node y varios paquetes de módulos.
jgoldschrafe

55
@IsaacRabinovitch Agregaron un ternario if, que no se produjo hasta Python 2.5. Dado que CentOS sigue la ruta RHEL de vincular el sistema Python a alguna versión parcheada personalizada de 2.4, mi solución fue yum install python26 python26-develejecutar y luego ejecutar en python26 configurelugar de ./configure. Luego, dado que Makefiletambién ejecuta scripts de Python, definí la PYTHONvariable allí para que esté en python26lugar de python. Además, necesitará g++allí, por lo que si aún no lo ha hecho, debería hacerlo yum install gcc-++.
Hank Gay

64

Si tiene CentOS 6.xy ha habilitado el repositorio EPEL , puede usar yum para instalar node / npm:

$ sudo yum install npm

Una vez completada la instalación, verifique que el nodo esté configurado correctamente:

$ node -v

(Debería devolver algo como v0.10.36).

Si desea versiones posteriores de Node.js (por ejemplo, 4.x, 5.x, etc.), puede usar el repositorio de Nodesource yum en lugar de EPEL.


2
Esto funcionó muy bien en mi sistema CentOS 6.4 y me dio nodo y npm. Obtuve el nodo 0.10.13, solo un poco fuera del último src tarball 0.10.15. Parece que esto necesita un mayor voto para sobresalir, ya que triunfa sobre la opción 'instalar desde la fuente'.
Neek

1
Siga esto para instalar EPEL repo.
Lee Chee Kiam

1
para actualizar, active la ejecución del repositorio de epel yum install -y epel-release, luego puede instalar node y npm con yum.
svassr

No pude hacer que el epel o epel-release funcionen con yum para v4.2.x. La respuesta de nave.sh a continuación funcionó maravillosamente.
jcollum

1
La instalación a través de yum me da una versión muy antigua v0.10.42 ... ¿Cómo puedo instalar Node a través de yum / rpm para obtener la última versión (actualmente 5.9.0)?
dokaspar

27

La esencia "Instalación de Node.js mediante el administrador de paquetes" NO contiene instrucciones para instalar nodejs en CentOS. Desde Fedora 18, nodejs se convierte en parte del repositorio estándar. Intento el repositorio "epel-fedora-nodejs" , y encuentro que ya no se actualiza, dejando la versión desactualizada 0.6.0.

La buena noticia es que tenemos nave , un entorno virtual para el nodo, para ayudarnos.

https://github.com/isaacs/nave

Instalar nodejs es muy fácil ahora.

$ 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

En el archivo nave.sh, puede que tenga que cambiar las URL locales para que coincidan con la última estructura dist de nodejs. Para 0.11.0 cambié la nave.sh para tener la siguiente URL

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


1
nodejs.tchol.org está muerto ahora
explunit

@explunit Acabo de actualizar la respuesta. Por favor, intente nave.
user974312

FYI Esto parece instalarlo solo para este usuario. Si desea instalarlo para todo el sistema: ./nave.sh usemain <su versión>
awl

"nodejs se convierte en parte del repositorio estándar": en CentOS 7 está increíblemente desactualizado. La versión instalada es v10.x (en el CentOS que nuestro departamento de TI usa de todos modos).
jcollum

13

Para 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
Debería usar una versión lanzada, no la versión de github, a menos que esté planeando contribuir al proyecto del nodo.
BT

11

[Editar] Gracias David por señalar en los comentarios a continuación que el sitio nodejs.tchol.org ahora apunta a un sitio de correo no deseado (sic!). Así que esta respuesta ya no funciona, ¡no la use!

Puedo confirmar que el método que Chris explicó en su solución funciona en CentOS 5.4 (lo hice hace un minuto :))

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

PD: por supuesto, debes ser root (o usar sudo) para instalar eso ...

Además de instalar desde la fuente (que siempre es una opción), tal vez todavía haya una alternativa: aquí leí que "node.js ha sido aceptado en Fedora Rawhide a partir de diciembre de 2012 y estará disponible en Fedora 18". , entonces tal vez eventualmente llegue a los repositorios estándar de CentOS

Voy a echar un vistazo a esto ...


3
Esto funcionó muy bien en CentOS 6. ¡Gracias!
KyleFarris

12
"nodejs.tchol.org" está muerto ahora
David Newcomb

2
Por lo tanto, solo debe instalar desde la fuente. No tengas miedo
John Hunt

2
@JohnHunt Instalar desde la fuente significa que ya no puede desinstalar limpiamente. He tenido el mismo problema con Ruby. Afortunadamente, podría revertir la imagen de VM ... Instalar desde el origen significa que necesita tener un conocimiento profundo del paquete que está instalando. Teniendo en cuenta que hay miles de paquetes de Linux, ¡esta no es una opción!
Christian el

1
"El enlace de arriba"? Las respuestas se ordenan por voto, y las de Chris ahora están por debajo de las suyas.
Isaac Rabinovitch

10

Como se señaló anteriormente, "tchol.org" desapareció, dejando a la gente de CentOS que está abandonando el uso de un administrador de paquetes o cambiando a otro sistema operativo. Hice un pacto conmigo mismo en contra de que cada uno hiciera lo primero (de nuevo) en todos los cuadros excepto experimental / dev.

Afortunadamente, todavía hay rpms disponibles en: http://patches.fedorapeople.org/oldnode/stable/el6/x86_64/

Simplemente ignore las rpm del instalador de repositorios, que dirige yum al sitio desaparecido. Eso debería comprarnos un poco de tiempo, a menos que / hasta que se vuelvan demasiado obsoletos.

Mantendré los ojos abiertos para nuevos repositorios y volveré a publicar si los encuentro.


Yo diría que la versión 0.6 en su enlace ya es bastante obsoleta. Parece que realmente no hay buenas opciones para RHEL / CentOS en este momento, lo cual es extraño teniendo en cuenta que Red Hat sí mismo ofrece node.js PaaS
explunit

8

Esto funcionó para mí en 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
Tengo que usar Python 2.6 en mi CentOS 5.10, ya que Python 2.7 no está en repositorio.
ohho

7

Hay un enfoque más que no he visto en ninguna de las otras respuestas, y es usar las distribuciones binarias para Linux que se han publicado desde 0.8.6

Aquí está el script que 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

O, si desea una versión específica (por ejemplo, permanecer en la 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

Y para mí en CentOS 6.3, tuve que agregar los siguientes enlaces para que los comandos de nodo y npm funcionaran desde el usuario normal o desde sudo. Puede que no sea necesario dependiendo de su versión.

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 situación de node.js en CentOS / RHEL es bastante mala, ya que ninguno de los repositorios incluye node.js (consulte la pregunta relacionada aquí ). Esta respuesta tiene las mismas desventajas que las mencionadas anteriormente para compilar desde la fuente.


7

Las respuestas anteriores están desactualizadas

Como raíz

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

y listo

verifique su instalación con

node -v

Parece que a mi versión de curl no le gusta la Autoridad de firma del certificado SSL de la url, por lo que el script falla en silencio. Puedes superarlo usando la opción curl -k.
Spike Williams el

Además, después de agregar -k al comando curl anterior, también debe actualizar la referencia a las descargas curl de ese dominio en el script de "configuración" que se descarga. Luego ejecute ese script manualmente usando bash.
Spike Williams el

5

¿Nadie mencionó nvmmanejar (múltiples) de manera segura y fácil las instalaciones de Nodo https://github.com/creationix/nvm ? Lo encuentro muy útil.

Incluso útil para construir un nodo de archivos de liberación árbol y paquetes rpm de modo personalizadas sin scripting demasiado, latest-node, wget, ./configure, make, make install, bla, bla.

nvm install 0.10.9

Descargará binarios o compilará el código fuente de acuerdo con el lanzamiento.


¿hay una instalación sin conexión?
amit patel

4

Ejecutar como root en RHEL, CentOS o Fedora, para Node.js v4 LTS Argon:

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

Alternativamente para Node.js v5:

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

Alternativamente para Node.js 0.10:

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

Luego instale, como root:

yum -y install nodejs

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


La única respuesta que funciona para CentOS 7.2. ¡Y trabajó tan rápido y perfectamente!
writeToBhuwan

recomendación: visite el proyecto NVM en GitHub y obtenga las instrucciones definitivas de README: github.com/creationix/nvm#installation
Kay V

3

Tengo algunas instrucciones bastante sencillas, junto con un archivo .spec aquí:

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

Compilará esto desde la fuente, por lo que deberá asegurarse de tener todos los paquetes necesarios para hacerlo en su sistema (gcc y amigos). Este conjunto de instrucciones es para crear un RPM, por lo que si le faltan los paquetes necesarios, rpmbuild le informará cuáles debe instalar primero.


1
¡Bienvenido a Server Fault! Si bien esto puede responder teóricamente la pregunta, sería preferible incluir aquí las partes esenciales de la respuesta y proporcionar el enlace para referencia.
user9517

Además, el enlace hace referencia a / usr / src / redhat, que no parece existir en mi instalación de CentOS 5 (está en / usr / local / src si entiendo correctamente)
Kato

2
Los cambios recientes también requerirían que las personas actualicen su instalación de Python (o la configuración no funcionará en ningún servidor CentOS que todavía use Python 2.4). ¿Considera actualizar la información y colocarla aquí?
Tim Post


3

Puedes usar 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

Para Ubuntu, esto funcionó para mí para la versión 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

pregunta es para CentOS
jcollum

2

Aquí está mi Dockerfile que instaló el nodo v0.10.36 en 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

Mi respuesta para la versión 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

Consulte la carpeta https://nodejs.org/dist/latest/ para encontrar el enlace de descarga de la última versión.


Esto me salvó en el servidor CentOS que ejecuta Plesk: la construcción de la última versión (5) desde la fuente falla ya que gcc está muy desactualizado. Actualizaría gcc, pero generalmente actualizar cualquier cosa manualmente a través de yum convierte a Plesk en un niño que grita.
Twistedpixel

¿hay un alquitrán para 4.x estable? La respuesta será mejor si sobrevive a algunos cambios de versión.
jcollum

Edité mi respuesta para incluir un enlace a la última carpeta de distribución donde puede encontrar la instalación específica de la distribución.
Evan Siroky

1

El siguiente código funcionó bastante bien en 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

Ya no funciona, http://nodejs.tchol.org ya no está en línea.


Solía ​​funcionar. Parece que esa máquina ya no existe.
rox0r

1

Realicé la tarea de hacer esta instalación yo mismo en RHEL 5.8 no hace mucho tiempo. Desafortunadamente, con nodejs.tchol.org desconectado, la única opción es construirlo desde la fuente.

Sin embargo, el proceso de compilación se volvió bastante complicado ya que el script de compilación involucra código de Python que no funciona con la versión predeterminada de Python en RHEL. Después de muchas pruebas y errores (y muchas búsquedas en Google), encontré esta publicación de blog que básicamente describe paso a paso las siguientes tareas requeridas.

a. Instalar Python 2.6 b. Configure esa versión de python como una versión alternativa, luego configúrela como predeterminada c. configurar e instalar node.js d. Cambiar Python a la versión predeterminada 2.4.

La clave es que debe volver a Python 2.4 después; de lo contrario, cosas simples como yum fallarán.

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


1

Después de instalar usando la respuesta mejor calificada, no pude instalar ningún módulo global (-g) sin los permisos de Sudo. La actualización de NPM mostró errores. El siguiente método funcionó perfecto para mí, no hay necesidad de permisos SU o SUDO.

Instalé Node.js y NPM usando el siguiente método tomado de ( https://gist.github.com/isaacs/579814 ) pero modifiqué dos líneas de comandos según el consejo de un comentario publicado por deesejohn en esa página.

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

Verifique la versión instalada usando node -vynpm -v

Al usar nuestro sitio, usted reconoce que ha leído y comprende nuestra Política de Cookies y Política de Privacidad.
Licensed under cc by-sa 3.0 with attribution required.