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

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 seguintes comandos não estão conseguindo instalar a versão mais recente. O que eu tenho que mudar no código abaixo para instalar a versão mais nova do Node.js no CentOS 7?

Eu começo digitando node --version , o que resulta em v0.12.7 . Esta é claramente uma versão antiga porque nodejs.org diz que v5.6.0 é a última versão estável.

Então, eu 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 devo digitar o seguinte para remover a versão desatualizada do node.js, então eu 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 eu digite o seguinte:

yum install -y nodejs

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

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

ESFORÇOS EM CURSO:

Como por sugestão @ Digisec, eu corri novamente os comandos acima, mas desta vez registrou toda a saída no texto a seguir. Por favor, note que a sequência é um pouco diferente agora que estou rodando 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]#   

Depois, conforme a @ answer da Digisec, tentei o seguinte, , mas o resultado ainda não conseguiu instalar a versão correta , como você pode ver nas seguintes saída de 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]# 

Em seguida, visitei o artigo da base de conhecimento referenciado pelo log de erros acima , mas descobri que não posso acessar o artigo completo porque eu não sou um cliente Red Had.

SOLUÇÃO PARCIAL:

@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 tomadas para remover a versão antiga para que a nova instalação seja limpa e completa?

Eu encontrei a URL tar da versão antiga v0.12.7 neste link . E o @Digisec 'também sugeriu a leitura de este outro link, o que sugere o uso do comando make uninstall . Tenho a impressã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 do CentOS 7 que estão 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 há três arquivos tar adicionais marcados com node_modules cujo relacionamento com v0.12.7 não está claro.

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

    
por CodeMed 13.02.2016 / 04:28

8 respostas

5

Acabei de verificar o link de onde você tirou isso. Você está instalando, especificamente, a versão 0.10 , ou tentando pelo menos, mas você tem uma versão mais nova no repositório que está sendo instalado. Você precisa 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 como root .

EDITAR: Tudo bem, parece que você adicionou o repositório 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 armazenado em cache e será removido do controle remoto.

Resposta: Após o trabalho que fizemos sobre o chat , aqui está a resposta correta para você. nodejs v5 instalado bem. Você previamente compilou nodejs v0.12 manualmente, o que não é uma boa ideia em distribuições binárias, porque você vai acabar nessa posição.

which node

retornou

/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 : essa é a saída mais fácil. Você pode editar seu .bashrc e adicionar um alias que apontará node -> /usr/bin/node . Isso é tão simples quanto adicionar alias node="/usr/bin/node" . Isso chamará a versão correta toda vez, mas não posso garantir que não causará conflitos no futuro com as bibliotecas.
  • Opção 2 : Este é o caminho mais difícil, mas vai consertar isso. Primeiro, elimine com yum o nodejs instalado no sistema. Segundo, pegue o tarball da versão que você compilou, descomente-o, ./configure e desinstale-o. Nesta etapa, você pode encontrar online facilmente. Por fim, reinstale nodejs a yum e isso deve resolver seu problema.
por 13.02.2016 / 05:01
3

CentOS 7.2, NodeJS 6.7.0 ( link ). Instalar manualmente

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

para desinstalar make uninstall

    
por 11.11.2016 / 00:12
2

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 recebi:

v7.2.0
    
por 25.11.2016 / 17:21
2

Então, nos deparamos com o mesmo problema aqui. O que nós percebemos é que os nomes dos repositórios eram os mesmos, então mesmo que o repositório caminhos tivesse mudado, o yum parecia pensar que já sabia o que estava no repositório e não atualizou o cache. Fizemos um yum clean all (que pode ter sido um exagero) e, em seguida, o yum install pegou a versão mais recente.

    
por 17.06.2017 / 01:03
1

Eu tentei instalar o nó do mesmo NodeSource RepoInstaller . Para o meu problema resolvido por habilitado nodesource repo. Altere enabled=0 para enabled=1 e todos devem 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
    
por 29.09.2016 / 09:16
0

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

Eu segui as instruções no site do nodejs e tentei instalar o npm. Este acabou por ser o problema (npm estava instalando da EPEL). O repositório do 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, assim que você instalar o nodejs do Nodesource, você terá instalado o npm automaticamente e estará pronto para a versão atualizada.

    
por 30.08.2016 / 21:52
0

Eu estava lutando com o mesmo problema, nem yum clean all nem rm -f /etc/yum.repos.d/nodesource* ajudou. Então eu achei que o yum usava o repositório Epel para instalar o nó, então eu o desativei temporariamente (em /etc/yum.repos.d/epel.repo set enabled=0 ) e depois disso

curl -sL https://rpm.nodesource.com/setup_8.x | bash -
yum install nodejs
    
por 08.03.2018 / 09:22
-1

Eu corro "curl --silent --location link | bash -". Mas eu acho que a última versão é 8. Então, eu corro "curl --silent --location link | bash -". Mas apenas 6.x aumentar quando eu corro "yum install nodejs".

execute "yum clean all; rm -f /etc/yum.repos.d/nodesource*" corrija.

    
por 17.08.2017 / 05:21