
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 --version
o que resulta em v0.12.7
. Esta é claramente uma versão antiga porque nodejs.org
diz 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 --version
novamente e o terminal responde v0.12.7
novamente, 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_modules
cuja relação v0.12.7
não é clara.
Quais comandos específicos devo executar para desinstalar v0.12.7
e remover com segurança todos os v0.12.7
arquivos 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 v5
instalado bem. Você compilou nodejs v0.12
manualmente 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
.bashrc
e adicionar umalias
que apontenode -> /usr/bin/node
. Isso é tão simples quanto adicionaralias 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
yum
o nodejs que está instalado no sistema. Segundo, obtenha o tarball da versão que você compilou, descompacte-o./configure
e desinstale-o. Nesta etapa, você pode encontraron-linefacilmente. Por fim, reinstalenodejs
através doyum
, 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