¿Por qué no se instala la nueva versión correcta de Node.js en CentOS 7?


11

Nota: Esto está parcialmente resuelto, pero necesita un poco más de atención. Vea las notas en la parte inferior de OP y la respuesta parcial de @ Digisec.

Estoy tratando de configurar Node.js en CentOS 7, pero los siguientes comandos no pueden instalar la última versión. ¿Qué debo cambiar en el siguiente código para instalar la versión más reciente de Node.js en CentOS 7?

Comienzo escribiendo lo node --versionque da como resultado v0.12.7. Esta es claramente una versión antigua porque nodejs.orgdice que v5.6.0es la última versión estable.

Entonces escribo lo siguiente para obtener la última versión de node.js:

cd /tmp
curl -sL https://rpm.nodesource.com/setup | bash -

El terminal imprime que debo escribir lo siguiente para eliminar la versión desactualizada de node.js, así que escribo lo siguiente:

yum remove -y nodejs npm

El terminal también dice que escriba lo siguiente para instalar la versión más reciente de node.js, así que escribo lo siguiente:

yum install -y nodejs

Pero luego escribo de node --versionnuevo, y el terminal responde de v0.12.7nuevo, mostrando que los comandos anteriores, simplemente reinstalan la versión antigua de nuevo.

Entonces, ¿qué debo hacer para obtener la última versión estable de node.js instalada en la máquina CentOS 7?


ESFUERZOS EN CURSO:


Según la sugerencia de @ Digisec, volví a ejecutar los comandos anteriores, pero esta vez grabé toda la salida en el siguiente texto. Tenga en cuenta que la secuencia es ligeramente diferente ahora que la estoy ejecutando nuevamente, pero el resultado es el mismo, de la siguiente manera:

[root@localhost ~]# node --version
v0.12.7
[root@localhost ~]# cd /tmp
[root@localhost tmp]# curl -sL https://rpm.nodesource.com/setup | bash -

## Installing the NodeSource Node.js 0.10 repo...


## Inspecting system...

+ rpm -q --whatprovides redhat-release || rpm -q --whatprovides centos-release || rpm -q --whatprovides cloudlinux-release || rpm -q --whatprovides sl-release
+ uname -m

## Confirming "el7-x86_64" is supported...

+ curl -sLf -o /dev/null 'https://rpm.nodesource.com/pub_0.10/el/7/x86_64/nodesource-release-el7-1.noarch.rpm'

## Downloading release setup RPM...

+ mktemp
+ curl -sL -o '/tmp/tmp.ePYEdVWXQH' 'https://rpm.nodesource.com/pub_0.10/el/7/x86_64/nodesource-release-el7-1.noarch.rpm'

## Installing release setup RPM...

+ rpm -i --nosignature --force '/tmp/tmp.ePYEdVWXQH'

## Cleaning up...

+ rm -f '/tmp/tmp.ePYEdVWXQH'

## Checking for existing installations...

+ rpm -qa 'node|npm' | grep -v nodesource

## Run `yum install -y nodejs` (as root) to install Node.js 0.10 and npm.
## You may also need development tools to build native addons:
##   `yum install -y gcc-c++ make`

[root@localhost tmp]# yum remove -y nodejs npm
Loaded plugins: fastestmirror, langpacks
No Match for argument: npm
Resolving Dependencies
--> Running transaction check
---> Package nodejs.x86_64 0:0.10.42-1nodesource.el7.centos will be erased
--> Finished Dependency Resolution

Dependencies Resolved

====================================================================================================================================================================================
 Package                             Arch                                Version                                                     Repository                                Size
====================================================================================================================================================================================
Removing:
 nodejs                              x86_64                              0.10.42-1nodesource.el7.centos                              @nodesource                               16 M

Transaction Summary
====================================================================================================================================================================================
Remove  1 Package

Installed size: 16 M
Downloading packages:
Running transaction check
Running transaction test
Transaction test succeeded
Running transaction
  Erasing    : nodejs-0.10.42-1nodesource.el7.centos.x86_64                                                                                                                         1/1 
  Verifying  : nodejs-0.10.42-1nodesource.el7.centos.x86_64                                                                                                                         1/1 

Removed:
  nodejs.x86_64 0:0.10.42-1nodesource.el7.centos                                                                                                                                    

Complete!
[root@localhost tmp]# yum install -y nodejs
Loaded plugins: fastestmirror, langpacks
Loading mirror speeds from cached hostfile
 * base: www.gtlib.gatech.edu
 * epel: mirror.sfo12.us.leaseweb.net
 * extras: dallas.tx.mirror.xygenhosting.com
 * updates: linux.mirrors.es.net
Resolving Dependencies
--> Running transaction check
---> Package nodejs.x86_64 0:0.10.42-1nodesource.el7.centos will be installed
--> Finished Dependency Resolution

Dependencies Resolved

====================================================================================================================================================================================
 Package                             Arch                                Version                                                      Repository                               Size
====================================================================================================================================================================================
Installing:
 nodejs                              x86_64                              0.10.42-1nodesource.el7.centos                               nodesource                              4.5 M

Transaction Summary
====================================================================================================================================================================================
Install  1 Package

Total download size: 4.5 M
Installed size: 16 M
Downloading packages:
nodejs-0.10.42-1nodesource.el7.centos.x86_64.rpm                                                                                                             | 4.5 MB  00:00:09     
Running transaction check
Running transaction test
Transaction test succeeded
Running transaction
  Installing : nodejs-0.10.42-1nodesource.el7.centos.x86_64                                                                                                                         1/1 
  Verifying  : nodejs-0.10.42-1nodesource.el7.centos.x86_64                                                                                                                         1/1 

Installed:
  nodejs.x86_64 0:0.10.42-1nodesource.el7.centos                                                                                                                                    

Complete!
[root@localhost tmp]# node --version
v0.12.7
[root@localhost tmp]#   

Luego, según la respuesta de @ Digisec , luego probé lo siguiente, pero el resultado sigue sin poder instalar la versión adecuada , como puede ver en la siguiente salida del terminal:

[root@localhost tmp]# curl --silent --location https://rpm.nodesource.com/setup_5.x | bash -

## Installing the NodeSource Node.js 5.x repo...


## Inspecting system...

+ rpm -q --whatprovides redhat-release || rpm -q --whatprovides centos-release || rpm -q --whatprovides cloudlinux-release || rpm -q --whatprovides sl-release
+ uname -m

## Confirming "el7-x86_64" is supported...

+ curl -sLf -o /dev/null 'https://rpm.nodesource.com/pub_5.x/el/7/x86_64/nodesource-release-el7-1.noarch.rpm'

## Downloading release setup RPM...

+ mktemp
+ curl -sL -o '/tmp/tmp.NEM1bxM9WB' 'https://rpm.nodesource.com/pub_5.x/el/7/x86_64/nodesource-release-el7-1.noarch.rpm'

## Installing release setup RPM...

+ rpm -i --nosignature --force '/tmp/tmp.NEM1bxM9WB'

## Cleaning up...

+ rm -f '/tmp/tmp.NEM1bxM9WB'

## Checking for existing installations...

+ rpm -qa 'node|npm' | grep -v nodesource

## Run `yum install -y nodejs` (as root) to install Node.js 5.x and npm.
## You may also need development tools to build native addons:
##   `yum install -y gcc-c++ make`

[root@localhost tmp]# yum remove -y nodejs npm
Loaded plugins: fastestmirror, langpacks
No Match for argument: npm
Resolving Dependencies
--> Running transaction check
---> Package nodejs.x86_64 0:0.10.42-1nodesource.el7.centos will be erased
--> Finished Dependency Resolution

Dependencies Resolved

====================================================================================================================================================================================
 Package                             Arch                                Version                                                     Repository                                Size
====================================================================================================================================================================================
Removing:
 nodejs                              x86_64                              0.10.42-1nodesource.el7.centos                              @nodesource                               16 M

Transaction Summary
====================================================================================================================================================================================
Remove  1 Package

Installed size: 16 M
Downloading packages:
Running transaction check
Running transaction test
Transaction test succeeded
Running transaction
  Erasing    : nodejs-0.10.42-1nodesource.el7.centos.x86_64                                                                                                                             1/1 
  Verifying  : nodejs-0.10.42-1nodesource.el7.centos.x86_64                                                                                                                             1/1 

Removed:
  nodejs.x86_64 0:0.10.42-1nodesource.el7.centos                                                                                                                                    

Complete!
[root@localhost tmp]# yum install -y nodejs
Loaded plugins: fastestmirror, langpacks
Loading mirror speeds from cached hostfile
 * base: www.gtlib.gatech.edu
 * epel: mirror.sfo12.us.leaseweb.net
 * extras: dallas.tx.mirror.xygenhosting.com
 * updates: linux.mirrors.es.net
Resolving Dependencies
--> Running transaction check
---> Package nodejs.x86_64 0:0.10.42-1nodesource.el7.centos will be installed
--> Finished Dependency Resolution

Dependencies Resolved

====================================================================================================================================================================================
 Package                             Arch                                Version                                                      Repository                               Size
====================================================================================================================================================================================
Installing:
 nodejs                              x86_64                              0.10.42-1nodesource.el7.centos                               nodesource                              4.5 M

Transaction Summary
====================================================================================================================================================================================
Install  1 Package

Total download size: 4.5 M
Installed size: 16 M
Downloading packages:
nodejs-0.10.42-1nodesource.el7 FAILED                                          
https://rpm.nodesource.com/pub_5.x/el/7/x86_64/nodejs-0.10.42-1nodesource.el7.centos.x86_64.rpm: [Errno 14] HTTPS Error 404 - Not Found           ]  0.0 B/s |    0 B  --:--:-- ETA 
Trying other mirror.
To address this issue please refer to the below knowledge base article 

https://access.redhat.com/articles/1320623

If above article doesn't help to resolve this issue please create a bug on https://bugs.centos.org/



Error downloading packages:
  nodejs-0.10.42-1nodesource.el7.centos.x86_64: [Errno 256] No more mirrors to try.

[root@localhost tmp]# yum install -y nodejs
Loaded plugins: fastestmirror, langpacks
Loading mirror speeds from cached hostfile
 * base: www.gtlib.gatech.edu
 * epel: mirror.sfo12.us.leaseweb.net
 * extras: dallas.tx.mirror.xygenhosting.com
 * updates: linux.mirrors.es.net
Resolving Dependencies
--> Running transaction check
---> Package nodejs.x86_64 0:0.10.42-1nodesource.el7.centos will be installed
--> Finished Dependency Resolution

Dependencies Resolved

====================================================================================================================================================================================
 Package                             Arch                                Version                                                      Repository                               Size
====================================================================================================================================================================================
Installing:
 nodejs                              x86_64                              0.10.42-1nodesource.el7.centos                               nodesource                              4.5 M

Transaction Summary
====================================================================================================================================================================================
Install  1 Package

Total download size: 4.5 M
Installed size: 16 M
Downloading packages:
No Presto metadata available for nodesource  
nodejs-0.10.42-1nodesource.el7 FAILED    
https://rpm.nodesource.com/pub_5.x/el/7/x86_64/nodejs-0.10.42-1nodesource.el7.centos.x86_64.rpm: [Errno 14] HTTPS Error 404 - Not Found           ]  0.0 B/s |    0 B  --:--:-- ETA 
Trying other mirror.
To address this issue please refer to the below knowledge base article 

https://access.redhat.com/articles/1320623

If above article doesn't help to resolve this issue please create a bug on https://bugs.centos.org/



Error downloading packages:
  nodejs-0.10.42-1nodesource.el7.centos.x86_64: [Errno 256] No more mirrors to try.

[root@localhost tmp]# node --version
v0.12.7
[root@localhost tmp]# 

Luego visité el artículo de la base de conocimiento al que hace referencia el registro de errores anterior , pero descubrí que no puedo acceder al artículo completo porque no soy cliente de Red Had.


SOLUCIÓN PARCIAL


@Digisec resolvió parcialmente esto al mostrar cómo instalar la nueva versión, pero aún no podemos eliminar la versión anterior, lo que dejará el riesgo de conflictos en el futuro. ¿Qué pasos se deben tomar para eliminar la versión anterior para que la nueva instalación pueda estar limpia y completa?

Encontré la url tar para la versión anterior v0.12.7 en este enlace . Y @Digisec 'también sugirió leer este otro enlace, que sugiere usar el comandomake uninstall . Tengo la sensación de que solo puede haber cinco o diez comandos para escribir en el terminal para eliminar el antiguo v0.12.7 y volver a instalar la nueva versión de nodejs. ¿Cuáles son los comandos requeridos?

Parece que encontré tres archivos tar en la máquina CentOS 7 que están relacionados con nodejs v0.12.7 usando los siguientes comandos de terminal:

[root@localhost ~]# cd /
[root@localhost /]# find . -type f -iname "*.tar"
find: ‘./run/user/1000/gvfs’: Permission denied
./opt/node-v0.12.7/deps/npm/node_modules/tar/test/dir-normalization.tar
./opt/node-v0.12.7/deps/npm/test/fixtures/gitignore-and-npmignore-2.tar
./opt/node-v0.12.7/deps/npm/test/fixtures/gitignore-and-npmignore.tar
./usr/local/lib/node_modules/npm/test/fixtures/gitignore-and-npmignore-2.tar
./usr/local/lib/node_modules/npm/test/fixtures/gitignore-and-npmignore.tar
./usr/local/lib/node_modules/npm/node_modules/tar/test/dir-normalization.tar
[root@localhost /]# 

Tenga en cuenta que hay tres archivos tar adicionales marcados node_modulescuya relación con v0.12.7no está clara.

¿Qué comandos específicos ejecuto para desinstalar v0.12.7y eliminar de forma segura todos los v0.12.7archivos tar asociados de la máquina?


Sería una buena idea publicar todos los resultados también. Eso ayudaría a ver qué sucede para poder ayudarlo mejor.
Digisec

@Digisec Volví a ejecutar los comandos y luego agregué el resultado completo al OP, como lo solicitó. ¿Puedo hacer algo más para ayudar a aislar el problema?
CodeMed

FWIW ahora puede desinstalar la versión anterior de NodeJS con yum remove -y nodejs.
avazula

Respuestas:


7

Acabo de comprobar el enlace del que obtuviste esto. Está instalando, específicamente, la versión 0.10, o intentando al menos, pero tiene una versión más reciente en el repositorio que se está instalando. Debe seguir la configuración del nodo v5.

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

PD : para referencia futura, asegúrese de leer los sitios con mucho cuidado, especialmente al ejecutar comandos como root .

EDITAR: Muy bien, parece que agregaste el repositorio correctamente. Mirando el repositorio, sus paquetes están ahí pero el sistema está buscando la versión incorrecta. En este punto, sugeriría.

yum clean all && yum update

Eso limpiará el repositorio en caché y lo tomará del control remoto.

Respuesta: Después del trabajo que hemos realizado sobre el chat, aquí está la respuesta correcta para usted. nodejs v5bien instalado Anteriormente compiló nodejs v0.12manualmente, lo que no es una buena idea en distribuciones binarias, porque terminará en esta posición.

which node

regresado

/usr/local/bin/node

mientras

/usr/bin/node

devolvió la respuesta correcta de v5.x.

En este punto, tiene varias opciones para solucionarlo, pero recomendaría 2.

  • Opción 1 : esta es la salida fácil. Puede editar su .bashrcy agregar un aliasque apunte node -> /usr/bin/node. Esto es tan simple como agregar alias node="/usr/bin/node". Esto llamará a la versión correcta cada vez, pero no puedo garantizar que no causará conflictos en el futuro con las bibliotecas.
  • Opción 2 : este es el camino difícil, pero lo solucionará. Primero, purgue con yumel nodejs que está instalado en el sistema. En segundo lugar, obtenga el tarball para la versión que ha compilado, descomprímalo ./configurey desinstálelo. Este paso, puedes encontrarlo en línea fácilmente. Finalmente, vuelva nodejsa instalar yum, y eso debería solucionar su problema.

Gracias por investigar esto, pero esto todavía no soluciona completamente el problema. Consulte la salida de terminal adicional que agregué al final del OP para documentar los resultados de probar su sugerencia. ¿Qué más puedo probar?
CodeMed

@CodeMed Actualicé la respuesta y sería una mejor idea entrar al chat.
Digisec

Eso no resolvió el problema. Si todavía está dispuesto a chatear, creé la siguiente sala: chat.stackexchange.com/rooms/35670/…
CodeMed

@CodeMed buena suerte con la solución de su problema.
Digisec

¿Estás dispuesto a elaborar tu opción 2? ¿O debería publicar una pregunta por separado?
CodeMed

4

Lo que hice:

rm -f /etc/yum.repos.d/nodesource-el*
curl -sL https://rpm.nodesource.com/setup_7.x | bash
yum install -y nodejs
nodo --version

y obtuve:

v7.2.0

¡Gracias! Esta fue la única solución que me ayudó.
626

3

CentOS 7.2, NodeJS 6.7.0 ( https://nodejs.org/download/release/v6.7.0/ ). Instalar manualmente

wget https://nodejs.org/download/release/v6.7.0/node-v6.7.0.tar.gz
./configure
make
make install

para desinstalar make uninstall


1

Intenté instalar el nodo del mismo NodeSource RepoInstaller . Para mi problema resuelto por nodesourcerepositorio habilitado . Cambiar enabled=0a enabled=1y todo debería funcionar.

[root@web ~]# cat /etc/yum.repos.d/nodesource-el.repo
[nodesource]
name=Node.js Packages for Enterprise Linux 7 - $basearch
baseurl=https://rpm.nodesource.com/pub_6.x/el/7/$basearch
failovermethod=priority
enabled=1
gpgcheck=1
gpgkey=file:///etc/pki/rpm-gpg/NODESOURCE-GPG-SIGNING-KEY-EL

0

También tuve algunos problemas para instalar las nuevas versiones de npm y nodejs en CentOS 7.

Seguí las instrucciones en el sitio de nodejs y luego intenté instalar npm. Esto resultó ser el problema (npm se estaba instalando desde EPEL). El repositorio de Nodesource no proporciona paquetes individuales para npm como es el caso de EPEL. En cambio, todo está dentro de un solo paquete 'nodejs'. Entonces, una vez que instale nodejs desde Nodesource, ahora ha instalado automáticamente npm y está listo para ir a la versión actualizada.


0

Estaba luchando con el mismo problema, yum clean allni me rm -f /etc/yum.repos.d/nodesource*ayudó. Luego descubrí que yum usaba el repositorio de Epel para instalar el nodo, así que lo desactivé temporalmente (en el /etc/yum.repos.d/epel.repoconjunto enabled=0) y después de eso

curl -sL https://rpm.nodesource.com/setup_8.x | bash -
yum install nodejs

0

También me he enfrentado al mismo problema.

Solución: 1. Vaya a la /tmpubicación, elimine todos los archivos y carpetas.

cd /tmp
rm -rf *

2. ahora puede usar los siguientes comandos para instalar NodeJs

curl --silent --location https://rpm.nodesource.com/setup_10.x | bash -
sudo yum install -y nodejs
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.