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 unalias
qui pointeranode -> /usr/bin/node
. C'est aussi simple que d'ajouteralias 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éinstalleznodejs
viayum
, et cela devrait résoudre votre problème.