Por que a nova versão correta do Node.js não é instalada no CentOS 7?

Por que a nova versão correta do Node.js não é instalada no CentOS 7?

Nota: Isso está parcialmente resolvido, mas precisa de um pouco mais de atenção. Veja as notas na parte inferior do OP e a resposta parcial do @Digisec.

Estou tentando configurar o Node.js no CentOS 7, mas os comandos a seguir não conseguem instalar a versão mais recente. O que devo alterar no código abaixo para instalar a versão mais recente do Node.js no CentOS 7?

Começo digitando node --versiono que resulta em v0.12.7. Esta é claramente uma versão antiga porque nodejs.orgdiz que v5.6.0é a versão estável mais recente.

Então digito o seguinte para obter a versão mais recente do node.js:

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

O terminal mostra que devo digitar o seguinte para remover a versão desatualizada do node.js, então digito o seguinte:

yum remove -y nodejs npm

O terminal também diz para digitar o seguinte para instalar a versão mais recente do node.js, então digito o seguinte:

yum install -y nodejs

Mas então digito node --versionnovamente e o terminal responde v0.12.7novamente, mostrando que os comandos anteriores simplesmente reinstalaram a versão antiga e desatualizada novamente.

Então, o que preciso fazer para instalar a versão estável mais recente do node.js na máquina CentOS 7?


ESFORÇOS CONTÍNUOS:


Seguindo a sugestão do @Digisec, executei novamente os comandos acima, mas desta vez registrei toda a saída no texto a seguir. Observe que a sequência é um pouco diferente agora que a estou executando novamente, mas o resultado é o mesmo, como 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]#   

Então, conforme @Digisec'sresponder, em seguida tentei o seguinte,mas o resultado ainda é a falha na instalação da versão adequada, como você pode ver na seguinte saída do 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]# 

então visiteio artigo da base de conhecimento referenciado pelo log de erros acima, mas descobri que não consigo acessar o artigo completo porque não sou cliente do Red Had.


SOLUÇÃO PARCIAL:


A @Digisec resolveu parcialmente isso mostrando como instalar a nova versão, mas ainda não conseguimos remover a versão antiga, o que deixará o risco de conflitos no futuro. Quais etapas precisam ser seguidas para remover a versão antiga para que a nova instalação possa ser limpa e completa?

eu encontreio URL tar para a versão antiga v0.12.7 neste link. E @Digisec' também sugeriu leituraeste outro link, que sugere usar o comandomake uninstall. Tenho a sensação de que pode haver apenas cinco ou dez comandos para digitar no terminal para remover a antiga v0.12.7 e reinstalar a nova versão do nodejs. Quais são os comandos necessários?

Parece que encontrei três arquivos tar na máquina CentOS 7 relacionados ao nodejs v0.12.7 usando os seguintes 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 /]# 

Observe que há três arquivos tar adicionais marcados node_modulescuja relação v0.12.7não é clara.

Quais comandos específicos devo executar para desinstalar v0.12.7e remover com segurança todos os v0.12.7arquivos tar associados da máquina?

Responder1

Acabei de verificar olinkvocê conseguiu isso. Você está instalando, especificamente, version 0.10, ou pelo menos tentando, mas tem uma versão mais recente no repositório que está sendo instalada. Você deve seguir a configuração do nó v5.

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

PS: para referência futura, certifique-se de ler os sites com muito cuidado, especialmente ao executar comandos comoraiz.

EDITAR: Tudo bem, parece que você adicionou orepositóriocorretamente. Olhando para o repositório, seus pacotes estão lá, mas o sistema está procurando a versão errada. Neste ponto, eu sugeriria.

yum clean all && yum update

Isso limpará o repositório em cache e capturará remotamente.

Responder: Depois do trabalho que fizemos chat, aqui está a resposta correta para você. nodejs v5instalado bem. Você compilou nodejs v0.12manualmente anteriormente, o que não é uma boa ideia em distros binárias, porque você acabará nesta posição.

which node

devolvida

/usr/local/bin/node

enquanto

/usr/bin/node

retornou a resposta correta de v5.x.

Neste ponto, você tem várias opções para consertar, mas eu recomendaria 2.

  • Opção 1: Esta é a saída mais fácil. Você pode editar o seu .bashrce adicionar um aliasque aponte node -> /usr/bin/node. Isso é tão simples quanto adicionar alias node="/usr/bin/node". Isso sempre chamará a versão correta, mas não posso garantir que não causará conflitos futuros com bibliotecas.
  • opção 2: Esta é a maneira mais difícil, mas vai resolver o problema. Primeiro, limpe com yumo nodejs que está instalado no sistema. Segundo, obtenha o tarball da versão que você compilou, descompacte-o ./configuree desinstale-o. Nesta etapa, você pode encontraron-linefacilmente. Por fim, reinstale nodejsatravés do yum, e isso deve resolver o seu problema.

Responder2

O que eu fiz:

rm -f /etc/yum.repos.d/nodesource-el*
curl -sL https://rpm.nodesource.com/setup_7.x | festa -
yum instalar -y nodejs
nó --versão

e eu consegui:

v7.2.0

Responder3

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

desinstalarmake uninstall

Responder4

O mesmo problema aqui. O que fiz para resolver foi:

TODOS DEVEM SER EXECUTADOS COMO ROOT ou pelo menos adicionar SUDO no início de cada comando

Desinstale o nodejs - no meu caso, node v8

yum uninstall nodejs npm

remova o repositório real de /etc/yum.repos.d

rm /etc/yum.repos.d/nodesource*

Atualize seu repositório

yum update

Obtenha o repositório atualizado - no meu caso, nó v14

curl -sL https://rpm.nodesource.com/setup_14.x | bash -

Eu gosto de fazer uma nova atualização do yum (é opcional)

yum update

Instale a nova versão do nó

yum install nodejs

Aproveitar

no code available for this

informação relacionada