GNU/Linux >> Tutoriales Linux >  >> Cent OS

Centos:¿por qué no se instala la nueva versión correcta de Node.js en Centos 7?

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

Estoy tratando de configurar Node.js en CentOS 7, pero los siguientes comandos no logran 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 node --version lo que da como resultado v0.12.7 . Esta es claramente una versión antigua porque nodejs.org dice que v5.6.0 es 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 node --version nuevamente, y la terminal responde con v0.12.7 nuevamente, mostrando que los comandos anteriores, simplemente reinstalaron la versión anterior desactualizada nuevamente.

Entonces, ¿qué debo hacer para instalar la versión estable más reciente de node.js en la máquina CentOS 7?

ESFUERZOS CONTINUOS:

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

[[email protected] ~]# node --version
v0.12.7
[[email protected] ~]# cd /tmp
[[email protected] 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`

[[email protected] 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!
[[email protected] 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!
[[email protected] tmp]# node --version
v0.12.7
[[email protected] tmp]#   

Entonces, según la respuesta de @Digisec , luego probé lo siguiente, pero el resultado sigue siendo que no puedo instalar la versión adecuada , como puede ver en la siguiente salida de terminal:

[[email protected] 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`

[[email protected] 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!
[[email protected] 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.

[[email protected] 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.

[[email protected] tmp]# node --version
v0.12.7
[[email protected] tmp]# 

Luego visité el artículo de la base de conocimientos 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.

Relacionado:Linux:¿directorios estándar y/o comunes en los sistemas operativos Unix/Linux?

SOLUCIÓN PARCIAL:

@Digisec resolvió esto parcialmente 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 seguir para eliminar la versión anterior de modo 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 comando make uninstall . Tengo la sensación de que es posible que solo haya que escribir cinco o diez comandos en el terminal para eliminar la versión anterior v0.12.7 y volver a instalar la nueva versión de nodejs. ¿Cuáles son los comandos necesarios?

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:

[[email protected] ~]# cd /
[r[email protected] /]# 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
[[email protected] /]# 

Tenga en cuenta que hay tres archivos tar adicionales marcados como node_modules cuya relación con v0.12.7 no está claro.

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

Respuesta aceptada:

Acabo de comprobar el enlace del que obtuviste esto. Estás instalando, en concreto, la versión 0.10 , o intentando al menos, pero tiene una versión más nueva en el repositorio que se está instalando. Tienes que seguir la configuración para el 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 cuando ejecute comandos como root .

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

yum clean all && yum update

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

Relacionado:¿Por qué Windows Update intenta instalar una actualización que no necesito?

Respuesta: Después del trabajo que hemos hecho en el chat , aquí está la respuesta correcta para usted. nodejs v5 instalado bien. Previamente compilaste nodejs v0.12 manualmente, lo cual no es una buena idea en distribuciones binarias, porque terminarás en esta posición.

which node

devuelto

/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 .bashrc y agrega un alias eso apuntará a 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 cause conflictos en el futuro con las bibliotecas.
  • Opción 2 :Esta es la manera difícil, pero lo arreglará. Primero, purgue con yum el nodejs que está instalado en el sistema. En segundo lugar, obtenga el tarball para la versión que ha compilado, descomprímalo, ./configure y desinstalarlo. Este paso, se puede encontrar en línea fácilmente. Finalmente, reinstale nodejs a través de yum , y eso debería solucionar su problema.

Cent OS
  1. Cómo instalar la última versión de Python 3 en CentOS 7

  2. Cómo instalar la pila LAMP en CentOS 7

  3. Cómo instalar Node.js y NPM en CentOS

  4. Cómo instalar MongoDB 4.2/4.0 en CentOS 6/RHEL 6

  5. Cómo instalar el cortafuegos CSF en CentOS 7

Cómo instalar PHP 7.4 en CentOS 8

Cómo instalar la última versión de LibreOffice en CentOS 8

Cómo instalar una versión específica del kernel en CentOS

Cómo instalar Node.js en CentOS 7

Cómo instalar la versión principal de Nginx en CentOS 7

Cómo instalar Node.js en CentOS Stream 9