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

11

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 estão falhando ao instalar a versão mais recente. O que preciso alterar no código abaixo para instalar a versão mais recente do Node.js no CentOS 7?

Começo digitando o node --versionque 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 imprime que eu deveria digitar o seguinte para remover a versão desatualizada do node.js, então digite 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 digito node --versionnovamente, e o terminal responde v0.12.7novamente, mostrando que os comandos anteriores simplesmente reinstalaram a versão antiga 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 EM CURSO:


Conforme 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 está um pouco diferente agora que estou executando novamente, mas o resultado é o mesmo, da seguinte maneira:

[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, de acordo com a resposta do @ Digisec , tentei o seguinte, mas o resultado ainda não conseguiu instalar a versão correta , 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]# 

Visitei o artigo da base de conhecimento mencionado no log de erros acima , mas descobri que não consigo acessar o artigo completo porque não sou um cliente da Red Had.


SOLUÇÃO PARCIAL:


O @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?

Encontrei o URL tar para a versão antiga v0.12.7 neste link . E @Digisec' também sugeriu lendo este outro link, que sugere o uso do 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 do 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 existem outros três arquivos tar marcados node_modulescuja relação com v0.12.7não é clara.

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

CodeMed
fonte
Seria uma boa idéia publicar também toda a saída. Isso ajudaria a ver o que está acontecendo para poder ajudá-lo melhor.
Digisec 13/02/16
@ Digisec Voltei a executar os comandos e adicionei a saída completa ao OP, conforme solicitado. Posso fazer mais alguma coisa para ajudar a isolar o problema?
CodeMed 13/02/16
Agora você pode desinstalar a versão antiga do NodeJS yum remove -y nodejs.
avazula 29/07/19

Respostas:

7

Acabei de verificar o link que você obteve. Você está instalando, especificamente, versão 0.10ou tentando pelo menos, mas você tem uma versão mais nova no repositório que está sendo instalado. 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, leia os sites com muito cuidado, especialmente ao executar comandos como root .

EDIT: Tudo bem, parece que você adicionou o repo corretamente. 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 o agarra do controle remoto.

Resposta: Após o trabalho que realizamos chat, aqui está a resposta correta para você. nodejs v5instalado bem. Você compilou nodejs v0.12manualmente manualmente, o que não é uma boa ideia para distribuições binárias, porque você acabará nessa 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 corrigi-lo, mas eu recomendaria 2.

  • Opção 1 : Este é o caminho 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 no futuro com as bibliotecas.
  • Opção 2 : Esta é a maneira mais difícil, mas será corrigida. Primeiro, limpe com yumo nodejs que está instalado no sistema. Segundo, obtenha o tarball para a versão que você compilou, descompacte-a ./configuree desinstale-a. Nesta etapa, você pode encontrar online facilmente. Por fim, reinstale nodejscompletamente yume isso deve resolver o seu problema.
Digisec
fonte
Obrigado por analisar isso, mas isso ainda não está solucionando completamente o problema. Por favor, veja a saída do terminal adicional que adicionei ao final do OP, documentando os resultados da tentativa de sua sugestão. O que mais posso tentar?
CodeMed 13/02/16
@CodeMed Atualizei a resposta e seria uma idéia melhor entrar no chat.
Digisec 13/02/16
Isso não resolveu o problema. Se você ainda estiver disposto a conversar, criei a seguinte sala: chat.stackexchange.com/rooms/35670/…
CodeMed 13/02/16
@CodeMed boa sorte ao corrigir seu problema.
Digisec 13/02/16
Você está disposto a elaborar sua opção 2? Ou devo postar uma pergunta separada?
CodeMed 13/02/16
4

O que eu fiz:

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

e eu tenho:

v7.2.0
Sergio
fonte
Obrigado! Essa foi a única solução que me ajudou.
626
1

Tentei instalar o nó do mesmo NodeSource RepoInstaller . Para mim, o problema foi resolvido pelo nodesourcerepo ativado . Mude enabled=0para enabled=1e tudo deve funcionar.

[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
BioQwer
fonte
0

Também estava com alguns problemas para instalar as novas versões do npm e nodejs no CentOS 7.

Segui as instruções no site nodejs e tentei instalar o npm. Esse foi o problema (o npm estava sendo instalado a partir do EPEL). O repositório Nodesource não fornece pacotes individuais para o npm, como é o caso do EPEL. Em vez disso, tudo está dentro de um único pacote 'nodejs'. Portanto, depois de instalar o nodejs da Nodesource, você instalou o npm automaticamente e está pronto para a versão atualizada.

Ben
fonte
0

Eu estava lutando com o mesmo problema, yum clean allnem rm -f /etc/yum.repos.d/nodesource*ajudou. Então eu descobri que o yum usou o repositório Epel para instalar o nó, então eu o desativei temporariamente (no /etc/yum.repos.d/epel.repoconjunto enabled=0) e depois disso

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

Eu também enfrentei o mesmo problema.

Solução: 1. Vá para o /tmplocal e remova todos os arquivos e pastas.

cd /tmp
rm -rf *

2. agora você pode usar os comandos abaixo para instalar os NodeJs

curl --silent --location https://rpm.nodesource.com/setup_10.x | bash -
sudo yum install -y nodejs
Lokesh Kumar Bandi
fonte