Perché la nuova versione corretta di Node.js non verrà installata su CentOS 7?


12

Nota: questo è parzialmente risolto, ma richiede un po 'più di attenzione. Vedi le note in fondo a OP e la risposta parziale di @ Digisec.

Sto cercando di impostare Node.js su CentOS 7, ma i seguenti comandi non riescono a installare l'ultima versione. Cosa devo modificare nel codice seguente per installare la versione più recente di Node.js su CentOS 7?

Comincio digitando il node --versionrisultato v0.12.7. Questa è chiaramente una vecchia versione perché nodejs.orgdice che v5.6.0è l'ultima versione stabile.

Quindi digito quanto segue per ottenere l'ultima versione di node.js:

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

Il terminale stampa che dovrei digitare quanto segue per rimuovere la versione obsoleta di node.js, quindi scrivo quanto segue:

yum remove -y nodejs npm

Il terminale dice anche di digitare quanto segue per installare la versione più recente di node.js, quindi scrivo quanto segue:

yum install -y nodejs

Ma poi digito di node --versionnuovo e il terminale risponde di v0.12.7nuovo, mostrando che i comandi precedenti hanno semplicemente reinstallato di nuovo la vecchia versione obsoleta.

Quindi cosa devo fare per ottenere la versione stabile più recente di node.js installata sul computer CentOS 7?


EFFETTI IN CORSO:


Come suggerito da @ Digisec, ho eseguito nuovamente i comandi sopra, ma questa volta ho registrato tutto l'output nel seguente testo. Si noti che la sequenza è leggermente diversa ora che la sto eseguendo di nuovo, ma il risultato è lo stesso, come segue:

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

Quindi, secondo la risposta di @ Digisec , ho successivamente provato quanto segue, ma il risultato non riesce ancora a installare la versione corretta , come puoi vedere dal seguente output del terminale:

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

Ho quindi visitato l'articolo della knowledge base a cui fa riferimento il log degli errori sopra , ma ho scoperto che non riesco ad accedere all'articolo completo perché non sono un cliente Red Had.


SOLUZIONE PARZIALE:


@Digisec ha parzialmente risolto questo problema mostrando come installare la nuova versione, ma non siamo ancora in grado di rimuovere la vecchia versione, il che lascerà il rischio di conflitti in futuro. Quali misure devono essere prese per rimuovere la vecchia versione in modo che la nuova installazione possa essere pulita e completa?

Ho trovato l'URL tar per la vecchia versione v0.12.7 a questo link . E @Digisec 'ha anche suggerito di leggere questo altro link, che suggerisce di usare il comandomake uninstall . Ho la sensazione che potrebbero esserci solo cinque o dieci comandi da digitare nel terminale per rimuovere la vecchia v0.12.7 e reinstallare la nuova versione di nodejs. Quali sono i comandi richiesti?

Mi sembra di aver trovato tre file tar sulla macchina CentOS 7 che sono correlati a nodejs v0.12.7 usando i seguenti comandi del terminale:

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

Si noti che ci sono altri tre file tar contrassegnati la node_modulescui relazione v0.12.7non è chiara.

Quali comandi specifici devo eseguire per disinstallare v0.12.7e rimuovere in sicurezza tutti i v0.12.7file tar associati dalla macchina?


Sarebbe una buona idea pubblicare anche tutti gli output. Ciò aiuterebbe a vedere cosa sta succedendo per poterti aiutare meglio.
Digisec,

@Digisec Ho eseguito nuovamente i comandi e quindi ho aggiunto l'output completo all'OP, come richiesto. Posso fare qualcos'altro per aiutare a isolare il problema?
CodeMed,

FWIW ora puoi disinstallare la vecchia versione di NodeJS con yum remove -y nodejs.
avazula,

Risposte:


7

Ho appena controllato il link da cui hai ricevuto questo. Stai installando, in particolare, la versione 0.10o almeno ci stai provando, ma hai una versione più recente nel repository che viene installato. Devi seguire la configurazione per il nodo v5.

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

PS : per riferimento futuro, assicurati di leggere i siti con molta attenzione soprattutto quando esegui i comandi come root .

EDIT: Va bene, sembra che hai aggiunto correttamente il repository . Esaminando il repository, i pacchetti sono presenti ma il sistema sta cercando la versione errata. A questo punto, suggerirei.

yum clean all && yum update

Ciò pulirà il repository memorizzato nella cache e afferrerà dal remoto.

Risposta: Dopo il lavoro svolto su chat, ecco la risposta corretta per te. nodejs v5installato bene. In precedenza hai compilato nodejs v0.12manualmente, il che non è una buona idea sulle distro binarie, perché finirai in questa posizione.

which node

tornato

/usr/local/bin/node

mentre

/usr/bin/node

ha restituito la risposta corretta di v5.x.

A questo punto hai più opzioni per risolverlo, ma consiglierei 2.

  • Opzione 1 : questa è la via d'uscita facile. Puoi modificare il tuo .bashrce aggiungere un aliaspunto che indicherà node -> /usr/bin/node. Questo è semplice come aggiungere alias node="/usr/bin/node". Questo chiamerà la versione corretta ogni volta, ma non posso garantire che non causerà conflitti in futuro con le librerie.
  • Opzione 2 : questo è il modo più difficile, ma lo risolverà. Innanzitutto, eliminare con yumi nodejs installati nel sistema. In secondo luogo, ottieni il tarball per la versione che hai compilato, decomprimilo ./configuree disinstallalo. Questo passaggio, puoi trovarlo online facilmente. Infine, reinstallare nodejsattraverso yum, e che dovrebbe risolvere il problema.

Grazie per aver esaminato questo aspetto, ma ciò non risolve ancora completamente il problema. Vedere l'output del terminale aggiuntivo che ho aggiunto alla fine dell'OP documentando i risultati del tentativo di suggerimento. Cos'altro posso provare?
CodeMed,

@CodeMed Ho aggiornato la risposta e sarebbe un'idea migliore entrare in chat.
Digisec,

Ciò non ha risolto il problema. Se sei ancora disposto a chattare, ho creato la seguente stanza: chat.stackexchange.com/rooms/35670/…
CodeMed

@CodeMed buona fortuna con la risoluzione del problema.
Digisec,

Sei disposto a elaborare la tua opzione 2? O dovrei pubblicare una domanda separata?
CodeMed,

4

Cosa ho fatto:

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

e ho ottenuto:

v7.2.0

Grazie! Questa è stata l'unica soluzione che mi ha aiutato.
626,

3

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

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

per disinstallare make uninstall


1

Ho provato a installare il nodo dallo stesso NodeSource RepoInstaller . Per il mio problema risolto dal nodesourcerepository abilitato . Passa enabled=0a enabled=1e tutto dovrebbe funzionare.

[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

Inoltre, ho riscontrato alcuni problemi durante l'installazione delle nuove versioni di npm e nodejs su CentOS 7.

Ho seguito le istruzioni sul sito nodejs quindi ho provato a installare npm. Questo si è rivelato essere il problema (npm stava installando da EPEL). Il repository Nodesource non fornisce singoli pacchetti per npm come nel caso di EPEL. Invece tutto è all'interno di un singolo pacchetto "nodejs". Quindi, una volta installati nodejs da Nodesource, ora hai installato automaticamente npm e sei pronto per passare alla versione aggiornata.


0

Ero alle prese con lo stesso problema, yum clean allrm -f /etc/yum.repos.d/nodesource*aiutato. Poi ho scoperto che yum ha usato il repository Epel per installare il nodo, quindi l'ho disabilitato temporaneamente (in /etc/yum.repos.d/epel.reposet enabled=0) e successivamente

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

0

Ho anche affrontato lo stesso problema.

Soluzione: 1. Vai alla /tmpposizione rimuovi tutti i file e le cartelle.

cd /tmp
rm -rf *

2. ora è possibile utilizzare i comandi seguenti per installare NodeJs

curl --silent --location https://rpm.nodesource.com/setup_10.x | bash -
sudo yum install -y nodejs
Utilizzando il nostro sito, riconosci di aver letto e compreso le nostre Informativa sui cookie e Informativa sulla privacy.
Licensed under cc by-sa 3.0 with attribution required.