GNU/Linux >> Tutoriels Linux >  >> Cent OS

Centos - Pourquoi la nouvelle version correcte de Node.js ne s'installe-t-elle pas sur Centos 7 ?

Remarque :Ce problème est partiellement résolu, mais nécessite un peu plus d'attention. Voir les notes au bas de l'OP et la réponse partielle de @ Digisec.

J'essaie de configurer Node.js sur CentOS 7, mais les commandes suivantes ne parviennent pas à installer la dernière version. Que dois-je modifier dans le code ci-dessous pour installer la dernière version de Node.js sur CentOS 7 ?

Je commence par taper node --version qui se traduit par v0.12.7 . Il s'agit clairement d'une ancienne version car nodejs.org dit que v5.6.0 est la dernière version stable.

Alors je tape ce qui suit pour obtenir la dernière version de node.js :

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

Le terminal imprime que je dois taper ce qui suit pour supprimer la version obsolète de node.js, donc je tape ce qui suit :

yum remove -y nodejs npm

Le terminal dit également de taper ce qui suit pour installer la dernière version de node.js, donc je tape ce qui suit :

yum install -y nodejs

Mais ensuite je tape node --version à nouveau, et le terminal répond avec v0.12.7 encore une fois, montrant que les commandes précédentes ont simplement réinstallé l'ancienne version obsolète.

Que dois-je faire pour installer la dernière version stable de node.js sur la machine CentOS 7 ?

EFFORTS EN COURS :

Conformément à la suggestion de @ Digisec, j'ai réexécuté les commandes ci-dessus, mais cette fois, j'ai enregistré toute la sortie dans le texte suivant. Veuillez noter que la séquence est légèrement différente maintenant que je l'exécute à nouveau, mais le résultat est le même, comme suit :

[[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]#   

Ensuite, selon la réponse de @Digisec , j'ai ensuite essayé ce qui suit, mais le résultat ne parvient toujours pas à installer la bonne version , comme vous pouvez le voir sur la sortie de terminal suivante :

[[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]# 

J'ai ensuite consulté l'article de la base de connaissances référencé par le journal des erreurs ci-dessus, mais j'ai constaté que je ne pouvais pas accéder à l'intégralité de l'article car je ne suis pas client de Red Had.

Connexe :Linux – Répertoires standard et/ou communs sur les systèmes d'exploitation Unix/Linux ?

SOLUTION PARTIELLE :

@Digisec a partiellement résolu ce problème en montrant comment installer la nouvelle version, mais nous ne sommes toujours pas en mesure de supprimer l'ancienne version, ce qui laissera un risque de conflits à l'avenir. Quelles sont les étapes à suivre pour supprimer l'ancienne version afin que la nouvelle installation soit propre et complète ?

J'ai trouvé l'URL tar de l'ancienne version v0.12.7 sur ce lien. Et @Digisec' a également suggéré de lire cet autre lien, qui suggère d'utiliser la commande make uninstall . J'ai l'impression qu'il n'y a peut-être que cinq ou dix commandes à taper dans le terminal pour supprimer l'ancienne v0.12.7 et réinstaller la nouvelle version de nodejs. Quelles sont les commandes requises ?

Il me semble avoir trouvé trois fichiers tar sur la machine CentOS 7 liés à nodejs v0.12.7 en utilisant les commandes de terminal suivantes :

[[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] /]# 

Notez qu'il existe trois fichiers tar supplémentaires marqués node_modules dont la relation avec v0.12.7 n'est pas clair.

Quelles commandes spécifiques dois-je exécuter pour désinstaller en toute sécurité v0.12.7 et supprimer tous les v0.12.7 fichiers tar associés de la machine ?

Réponse acceptée :

Je viens de vérifier le lien d'où vous l'avez obtenu. Vous installez, précisément, la version 0.10 , ou en essayant au moins, mais vous avez une version plus récente dans le dépôt qui est en cours d'installation. Vous devez suivre la configuration du nœud v5.

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

PS  :pour référence future, assurez-vous de lire les sites très attentivement, en particulier lorsque vous exécutez des commandes en tant que root .

MODIF : Très bien, il semble que vous ayez correctement ajouté le dépôt. En regardant dans le référentiel, vos packages sont là mais le système recherche la mauvaise version. À ce stade, je suggérerais.

yum clean all && yum update

Cela nettoiera le dépôt en cache et le récupérera à distance.

Connexe :Pourquoi Windows Update essaie-t-il d'installer une mise à jour dont je n'ai pas besoin ?

Réponse : Après le travail que nous avons fait sur le chat , voici la bonne réponse pour vous. nodejs v5 bien installé. Vous avez précédemment compilé nodejs v0.12 manuellement, ce qui n'est pas une bonne idée sur les distributions binaires, car vous vous retrouverez dans cette position.

which node

retourné

/usr/local/bin/node

tandis que

/usr/bin/node

a renvoyé la bonne réponse de v5.x .

À ce stade, vous avez plusieurs options pour le réparer, mais je recommanderais 2.

  • Option 1 :C'est la solution de facilité. Vous pouvez modifier votre .bashrc et ajoutez un alias qui pointera node -> /usr/bin/node . C'est aussi simple que d'ajouter alias node="/usr/bin/node" . Cela appellera la bonne version à chaque fois mais je ne peux pas garantir que cela ne causera pas de conflits à l'avenir avec les bibliothèques.
  • Option 2 :C'est la manière la plus difficile, mais ça va le réparer. Tout d'abord, purgez avec yum le nodejs qui est installé sur le système. Deuxièmement, récupérez l'archive tar de la version que vous avez compilée, décompressez-la, ./configure et désinstallez-le. Cette étape, vous pouvez trouver en ligne facilement. Enfin, réinstallez nodejs via yum , et cela devrait résoudre votre problème.

Cent OS
  1. Comment installer la dernière version de Python 3 sur CentOS 7

  2. Comment installer la pile LAMP sur CentOS 7

  3. Comment installer Node.js et NPM sur CentOS

  4. Comment installer MongoDB 4.2 / 4.0 sur CentOS 6 / RHEL 6

  5. Comment installer le pare-feu CSF sur CentOS 7

Comment installer PHP 7.4 sur CentOS 8

Comment installer la dernière version de LibreOffice sur CentOS 8

Comment installer une version spécifique du noyau dans CentOS

Comment installer Node.js sur CentOS 7

Comment installer la version principale de Nginx sur CentOS 7

Comment installer Node.js sur CentOS Stream 9