Cómo yum instalar Node.JS en Amazon Linux


251

He visto la escritura sobre el uso de yum para instalar las dependencias, y luego instalar Node.JS & NPM desde la fuente. Si bien esto funciona, siento que Node.JS y NPM deberían estar en un repositorio público en alguna parte.

¿Cómo puedo instalar Node.JS y NPM en un comando en AWS Amazon Linux?


Respuestas:


396

Tropecé con esto, fue extrañamente difícil de encontrar más tarde. Poniendo aquí para la posteridad:

sudo yum install nodejs npm --enablerepo=epel

EDIT 3: a partir de julio de 2016, EDIT 1 ya no funciona para nodejs 4 (y EDIT 2 tampoco). Esta respuesta ( https://stackoverflow.com/a/35165401/78935 ) ofrece una verdadera frase.

EDITAR 1: Si está buscando nodejs 4, intente con el repositorio de prueba EPEL:

sudo yum install nodejs --enablerepo=epel-testing

EDITAR 2: Para actualizar desde nodejs 0.12 instalado a través del repositorio EPEL usando el comando anterior, a nodejs 4 desde el repositorio de pruebas EPEL, siga estos pasos:

sudo yum rm nodejs
sudo rm -f /usr/local/bin/node
sudo yum install nodejs --enablerepo=epel-testing

Los paquetes más nuevos ponen los binarios del nodo en /usr/binlugar de /usr/local/bin.

Y algunos antecedentes:

La opción --enablerepo=epelhace yumque se busquen los paquetes en el repositorio EPEL.

EPEL (Extra Packages for Enterprise Linux) es un proyecto de repositorio basado en la comunidad de código abierto y gratuito del equipo de Fedora que proporciona paquetes de software complementarios 100% de alta calidad para la distribución de Linux, incluidos RHEL (Red Hat Enterprise Linux), CentOS y Scientific Linux. El proyecto Epel no forma parte del sistema operativo RHEL / Cent, pero está diseñado para las principales distribuciones de Linux al proporcionar muchos paquetes de código abierto como redes, administración de sistemas, programación, monitoreo, etc. La mayoría de los paquetes de epel son mantenidos por el repositorio de Fedora.

Vía http://www.tecmint.com/how-to-enable-epel-repository-for-rhel-centos-6-5/


8
Este es definitivamente el enfoque más rápido que he visto, pero una advertencia puede ser útil: el repositorio EPEL no está sincronizado con el nodo estable actual, y no puede usar "n" para arreglar eso cuando se ha instalado. manera (al menos, no sin algún tipo de magia que está más allá de mí). El tedioso enfoque de instalación de git clone / make es la única forma que he encontrado para garantizar una instalación constante y actual.
Semicolon

22
Obtuve el nodo 0.10.36 y npm 1.3.6 de esto. Estos están muy desactualizados.
voltrevo

44
@Semicolon puede solucionarlo instalando npm, luego sudo npm install -g ny sudo n v0.12o cualquier otra versión que desee.
unboundev

44
n se actualiza como se esperaba, pero no actualiza el enlace del nodo correctamente. Tendrás que ejecutar el comando adicional:sudo ln -sf /usr/local/n/versions/node/<VERSION>/bin/node /usr/bin/node
Masadow

44
esta respuesta no funcionó ya que sudo yum install nodejs --enablerepo=epel-testingdevuelve el error: "No hay paquetes nodejs disponibles". mientras que sudo yum install nodejs --enablerepo=epelsolo dio versiones muy antiguas ...
goredwards

224

Como otros, la respuesta aceptada también me dio una versión desactualizada.

Aquí hay otra forma de hacerlo que funciona muy bien:

$ curl --silent --location https://rpm.nodesource.com/setup_12.x | bash -
$ yum -y install nodejs

También puede reemplazar el 12.x con otra versión, como 10.x, 8.x, etc.

Puede ver todas las versiones disponibles en la página de NodeSource Github , y extraer desde allí también si lo desea.

Nota: es posible que deba ejecutarlo sudosegún su entorno.


44
Esto es lo que necesitaba usar en AWS Elastic Beanstalk para obtener una versión más reciente que la que ya estaba instalada.
Jon Burgess

1
Obras simplemente perfecto, mientras que se necesita para ejecutar npm installpara package.json,
Chetabahana

32
Necesitaba ejecutar esto concurl --silent --location https://rpm.nodesource.com/setup_4.x | sudo bash -
user465342

16
Si se le niega el permiso, deberá agregar algo de sudo. curl --silent --location https://rpm.nodesource.com/setup_6.x | sudo bash -ysudo yum -y install nodejs
sampoh

1
si desea instalar Node.js 8.x, debe ejecutarcurl --silent --location https://rpm.nodesource.com/setup_8.x | bash -
Argun

64

La respuesta aceptada me dio el nodo 0.10.36 y npm 1.3.6 que están muy desactualizados. Tomé el último tarball linux-x64 de la página de descargas de nodejs y no fue demasiado difícil de instalar: https://nodejs.org/dist/latest/ .

# start in a directory where you like to install things for the current user
(For noobs : it downloads node package as node.tgz file in your directlry)
curl (paste the link to the one you want from the downloads page) >node.tgz

Ahora descomprime el tar que acabas de descargar:

tar xzf node.tgz

Ejecute este comando y luego agréguelo a su .bashrc:

export PATH="$PATH:(your install dir)/(node dir)/bin"

(ejemplo: export PATH = "$ PATH: /home/ec2-user/mydirectory/node/node4.5.0-linux-x64/bin")

Y actualice npm(solo una vez, no agregue a .bashrc):

npm install -g npm

Tenga en cuenta que -gallí, que significa global, realmente significa global para esa instancia de npm, que es la instancia que acabamos de instalar y está limitada al usuario actual. Esto se aplicará a todos los paquetes que npm instala 'globalmente'.


44
Esta es realmente la mejor respuesta, ya que obtienes exactamente la versión que deseas
Mariusz el

1
Ojalá leyera esta respuesta primero: esta debería ser la respuesta aceptada porque puedes elegir qué versión quieres instalar. - gracias @voltrevo
Mike W

2
@voltrevo gracias por la respuesta. Sí, hay otras formas de instalar el nodo en Linux. La respuesta aceptada es de una sola línea, que se conecta al sistema de paquetes YUM para actualizaciones automatizadas y administradas. Los paquetes en los repositorios de YUM tienden a ser un poco más antiguos y también se prueban un poco mejor con implementaciones más amplias. Personalmente, recomiendo dejar lo último y mejor a los entornos de desarrollo local, y usar algo más parecido a la respuesta aceptada para entornos de producción. ¡Salud!
Tim Fulmer

para las versiones antiguas de centos, esta es la mejor manera de hacerlo
user1336321

El error después de ejecutar el nodo -v ahora es: 'no se puede ejecutar el archivo binario'. ¿Algunas ideas?
JosFabre

28

El procedimiento que funcionó para mí (siguiendo estas instrucciones bastante antiguas con algunas actualizaciones):

  • compruebe que git está instalado git --versiono instálelo a través de:
    sudo yum install git
  • instale gcc y openssl:
    sudo yum install gcc-c++ make
    sudo yum install openssl-devel
  • clone el repositorio de git en un directorio llamado node(que puede eliminar más adelante):
    git clone https://github.com/nodejs/node.git
  • decida qué versión de nodo desea en https://github.com/nodejs/node/releases
  • vaya al directorio de nodos que acaba de crear e instale el nodo
    cd node
    git checkout v6.1.0; coloque la versión deseada después dev
    ./configure
    make
    sudo make install
  • probar que el nodo está instalado / trabajando con node --versiono simplemente node(salir del nodo a través de process.exit()o ^Cx 2 o ^C+ exit)
  • compruebe la versión de npm: npm --versiony actualice si es necesario a través desudo npm install -g npm
  • Opcional: elimine el nodedirectorio conrm -r node

Notas:

  1. La respuesta aceptada no funcionó ya que sudo yum install nodejs --enablerepo=epel-testingdevuelve el error: No package nodejs available.
    ... y sudo yum install nodejs --enablerepo=epel(es decir, sin -testing) solo dio versiones muy antiguas.
  2. Si ya tiene instalada una versión antigua del nodo, puede eliminarla con:
    sudo npm uninstall npm -g ... ya que npm puede desinstalarse
    sudo yum erase nodejs
    sudo rm -f /usr/local/bin/node
    ( sudo yum rm nodejsen la respuesta aceptada no funcionará, ya rmque no es un comando yum válido, consulte yum --help)
  3. Es posible clonar el repositorio de nodo a través de en git clone git://github.com/nodejs/node.gitlugar de hacerlo, git clone https://github.com/nodejs/node.gitpero puede obtener varios errores (consulte aquí ).
  4. Si ya tiene un /nodedirectorio de una instalación anterior, elimínelo antes de usar el comando git clone (o habrá un conflicto):
    rm -r node
  5. Si tiene problemas con algún sudo npm...comando, como sudo: npm: command not foundy / o tiene problemas de permisos para instalar paquetes de nodos sin sudo, edite sudo nano /etc/sudoersy agregue :/usr/local/binal final de la línea Defaults secure_path = /sbin:/bin:/usr/sbin:/usr/binpara que se leaDefaults secure_path = /sbin:/bin:/usr/sbin:/usr/bin:/usr/local/bin

3
@Gio muchas otras respuestas para elegir si esta no te agrada ;-) ... 'en un comando' no fue la parte más importante de la pregunta en mi humilde opinión.
Goredwards

Esto es muy útil después de haber cometido un error con la respuesta de aceptación. Gracias
Daron Tancharoen

@talentedandrew los etc/sudoerscontroles de archivos que pueden correr lo manda como lo que los usuarios en lo que las máquinas - pero sólo se ejecutarán / encontrar / mirada de los comandos que se encuentran en los directorios que aparecen en su secure_pathnodo debe ser instalado en /usr/local/biny si está allí sudo debe encontrarlo - ver stackoverflow .com / a / 31734090/3092596 Si sudo no lo encuentra, entonces que las necesidades de ruta que se añadirán a sudo de secure_path- véase también: superuser.com/a/927599/404543
goredwards

Me gustaría agregar que es posible que 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
deba

23

Instalación simple con NVM ...

curl -o- https://raw.githubusercontent.com/nvm-sh/nvm/v0.34.0/install.sh | bash
. ~/.nvm/nvm.sh
nvm install node

Para instalar una versión determinada (como 12.16.3) de Node, cambie la última línea a

nvm install 12.16.3

Para obtener más información sobre cómo usar NVM, visite los documentos: https://github.com/nvm-sh/nvm


1
Esto funciona totalmente. Toma menos tiempo que la respuesta de @goredwards también. Probado en un AMI optimizado de Amazon ECS.
Jayant Bhawal

3
La respuesta aceptada y todos los EDIT 1-3 no funcionaron para mí, pero esto funcionó. ¡Gracias!
seantomburke

1
ordenado y compacto.
Stephen Tetreault

1
simple e impresionante
Abhinav

2
Esta debería ser la respuesta. Es mejor, con mucho, a menos que alguien esté buscando construir desde la fuente.
Kirkland

19

Para la versión v4 LTS use:

curl --silent --location https://rpm.nodesource.com/setup_4.x | bash -
yum -y install nodejs

Para el uso de Node.js v6:

curl --silent --location https://rpm.nodesource.com/setup_6.x | bash -
yum -y install nodejs

También tuve algunos problemas al intentar instalar complementos nativos en Amazon Linux. Si desea hacer esto, también debe instalar herramientas de compilación:

yum install gcc-c++ make

Esta es una respuesta fantástica. Ya no me toma 20 minutos instalar Node más.
David Webber

si ejecuta una aplicación php con alguna interfaz compilada npm en elastic beanstalk, puede usar esto. que es parte de mi archivo install.config que hizo el trabajo - gist.github.com/marekjalovec/1ccee0c2254e65fc5d82eb35c7da82ae
Marek Jalovec

14

Acabo de encontrar esto. Probé algunas de las respuestas más populares, pero al final, lo que funcionó para mí fue la guía de configuración rápida de Amazon.

Tutorial: Configuración de Node.js en una instancia de Amazon EC2

La esencia del tutorial es:

  1. Asegúrate de estar en la instancia.
  2. Grab nvm: curl -o- https://raw.githubusercontent.com/creationix/nvm/v0.32.0/install.sh | bash
  3. Activo . ~/.nvm/nvm.sh
  4. Instale el nodo usando nvm nvm install 4.4.5(NOTA: puede elegir una versión diferente. Compruebe primero las versiones remotas ejecutando$ nvm ls-remote )
  5. Finalmente, pruebe que ha instalado el nodo Nodo correctamente ejecutando $ node -e "console.log('Running Node.js' + process.version)"

Esperemos que esto ayude a la próxima persona.


Es posible que desee explicar el contenido en ese enlace. Una buena respuesta solo usa un enlace como referencia, no el tema principal de la respuesta.
BusyProgrammer


5

Tenía instalado Node.js 6.x y quería instalar Node.js 8.x.

Aquí están los comandos que utilicé (tomados del sitio de Nodejs con algunos pasos adicionales para manejar los datos en caché de yum):

  1. sudo yum remove nodejs: Desinstalar Node.js 6.x (no sé si esto era necesario o no)
  2. curl --silent --location https://rpm.nodesource.com/setup_8.x | sudo bash -
  3. sudo yum clean all
  4. sudo yum makecache: Regenere el caché de metadatos (esto no estaba en los documentos, pero yum siguió intentando instalar Node.jx 6.x, sin éxito, hasta que emití estos dos últimos comandos)
  5. sudo yum install nodejs: Instalar Node.js 8.x

3

sudo yum install nodejs npm --enablerepo=epelque funciona para Amazon Linux AMI. curl --silent --location https://rpm.nodesource.com/setup_6.x | bash - yum -y install nodejs Funciona para RedHat.


2

La solución más fácil es esta (hacer esto como root)

sudo su root
cd /etc
mkdir node
yum install wget
wget https://nodejs.org/dist/v9.0.0/node-v9.0.0-linux-x64.tar.gz
tar -xvf node-v9.0.0-linux-x64.tar.gz
cd node-v9.0.0-linux-x64/bin
./node -v
ln -s /etc/node-v9.0.0-linux-x64/bin/node node

ingrese la descripción de la imagen aquí


Gracias, ayudó
arupjbasu



0

Como se menciona en la documentación oficial, simple a continuación 2 pasos:

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

0

Para aquellos que desean que la respuesta aceptada se ejecute en Ansible sin más búsquedas, publico la tarea aquí por conveniencia y referencia futura.

Recomendación de respuesta aceptada: https://stackoverflow.com/a/35165401/78935

Tarea equivalente equivalente

tasks:
  - name: Setting up the NodeJS yum repository
    shell: curl --silent --location https://rpm.nodesource.com/setup_10.x | bash -
    args:
      warn: no
  # ...

0

Puede actualizar / instalar el nodo reinstalando el paquete instalado en la versión actual que puede salvarnos de muchos errores, mientras realiza la actualización.

Esto lo hace nvm con el siguiente comando. ¡Aquí, actualicé mi versión de nodo a 8 y reinstalé todos los paquetes disponibles a v8 también!

nvm i v8 --reinstall-packages-from=default

Funciona también en la instancia de AWS Linux.

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.