Uwaga: Zostało to częściowo rozwiązane, ale wymaga nieco więcej uwagi. Zobacz uwagi na dole OP i częściową odpowiedź @ Digisec.
Próbuję skonfigurować Node.js na CentOS 7, ale następujące polecenia nie instalują najnowszej wersji. Co muszę zmienić w poniższym kodzie, aby zainstalować najnowszą wersję Node.js na CentOS 7?
Zaczynam od wpisania node --version
wyniku v0.12.7
. Jest to wyraźnie stara wersja, ponieważ nodejs.org
mówi, że v5.6.0
jest to najnowsza stabilna wersja.
Więc wpisuję następujące polecenie, aby uzyskać najnowszą wersję node.js:
cd /tmp
curl -sL https://rpm.nodesource.com/setup | bash -
Terminal wypisuje, że powinienem wpisać następujące informacje, aby usunąć nieaktualną wersję node.js, więc wpisuję następujące:
yum remove -y nodejs npm
Terminal mówi również, aby wpisać następujące polecenie, aby zainstalować najnowszą wersję node.js, więc wpisuję następujące polecenie:
yum install -y nodejs
Ale potem piszę node --version
ponownie, a terminal odpowiada v0.12.7
ponownie, pokazując, że poprzednie polecenia po prostu ponownie zainstalowały starą przestarzałą wersję.
Co więc muszę zrobić, aby zainstalować najnowszą stabilną wersję node.js na komputerze CentOS 7?
WYDAJNE CZYNNOŚCI:
Zgodnie z sugestią @ Digisec ponownie uruchomiłem powyższe polecenia, ale tym razem zapisałem wszystkie dane wyjściowe w następującym tekście. Należy pamiętać, że sekwencja jest nieco inna teraz, gdy uruchamiam ją ponownie, ale wynik jest taki sam, jak poniżej:
[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]#
Następnie, zgodnie z odpowiedzią @ Digisec , następnie wypróbowałem następujące, ale wynik nadal nie instaluje odpowiedniej wersji , jak widać z następującego wyjścia terminala:
[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]#
Następnie odwiedziłem artykuł bazy wiedzy, do którego odnosi się powyższy dziennik błędów , ale stwierdziłem, że nie mogę uzyskać dostępu do pełnego artykułu, ponieważ nie jestem klientem Red Had.
CZĘŚCIOWE ROZWIĄZANIE:
@Digisec częściowo rozwiązał ten problem, pokazując, jak zainstalować nową wersję, ale nadal nie jesteśmy w stanie usunąć starej wersji, co spowoduje ryzyko wystąpienia konfliktów w przyszłości. Jakie kroki należy podjąć, aby usunąć starą wersję, aby nowa instalacja mogła być czysta i ukończona?
Znalazłem adres URL tar dla starej wersji v0.12.7 pod tym linkiem . I @Digisec 'również zasugerował przeczytanie tego innego linku, co sugeruje użycie poleceniamake uninstall
. Mam wrażenie, że w terminalu może być tylko pięć lub dziesięć poleceń do usunięcia starego v0.12.7 i ponownego zainstalowania nowej wersji nodejs. Jakie są wymagane polecenia?
Wydaje mi się, że znalazłem trzy pliki tar na komputerze CentOS 7, które są powiązane z nodejs v0.12.7 przy użyciu następujących poleceń terminala:
[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 /]#
Zauważ, że zaznaczono dodatkowe trzy pliki tar, z node_modules
którymi związek v0.12.7
nie jest jasny.
Jakie konkretne polecenia należy uruchomić, aby bezpiecznie odinstalować v0.12.7
i usunąć wszystkie v0.12.7
powiązane pliki tar z komputera?
yum remove -y nodejs
.Odpowiedzi:
Właśnie sprawdziłem link, z którego to otrzymałeś. Instalujesz, w szczególności wersję
0.10
lub przynajmniej próbujesz, ale masz nowszą wersję w instalowanym repozytorium. Musisz postępować zgodnie z konfiguracją dla węzła v5.PS : na przyszłość, pamiętaj, aby bardzo uważnie czytać strony, szczególnie podczas uruchamiania poleceń jako root .
EDYCJA: Dobra, wygląda na to, że poprawnie dodałeś repozytorium . Patrząc na repozytorium, twoje pakiety już tam są, ale system szuka niewłaściwej wersji. W tym miejscu sugerowałbym.
Spowoduje to wyczyszczenie repozytorium w pamięci podręcznej i pobranie ze zdalnego.
Odpowiedź: Po pracy, którą wykonaliśmy
chat
, oto poprawna odpowiedź dla Ciebie.nodejs v5
zainstalowany dobrze. Wcześniej skompilowałeśnodejs v0.12
ręcznie, co nie jest dobrym pomysłem na dystrybucjach binarnych, ponieważ skończysz w tej pozycji.zwrócony
podczas
zwrócił poprawną odpowiedź
v5.x
.W tym momencie masz wiele opcji, aby to naprawić, ale polecam 2.
.bashrc
i dodaćalias
wskazującynode -> /usr/bin/node
. Jest to tak proste, jak dodawaniealias node="/usr/bin/node"
. Spowoduje to wywołanie poprawnej wersji za każdym razem, ale nie mogę zagwarantować, że nie spowoduje konfliktów w przyszłości z bibliotekami.yum
wyczyść za pomocą nodejs zainstalowanych w systemie. Po drugie, pobierz plik tar dla skompilowanej wersji, rozpakuj go./configure
i odinstaluj. W tym kroku możesz łatwo znaleźć online . Wreszcie, należy ponownie zainstalowaćnodejs
za pośrednictwemyum
, i że powinno rozwiązać problem.źródło
Co ja zrobiłem:
i mam:
źródło
CentOS 7.2, NodeJS 6.7.0 ( https://nodejs.org/download/release/v6.7.0/ ). Zainstaluj ręcznie
odinstalować
make uninstall
źródło
Próbowałem zainstalować węzeł z tego samego NodeSource RepoInstaller . Dla mnie problem rozwiązany przez włączone
nodesource
repo. Zmieńenabled=0
naenabled=1
i wszystko powinno działać.źródło
Miałem również problemy z zainstalowaniem nowych wersji npm i nodejs na CentOS 7.
Postępowałem zgodnie z instrukcjami na stronie nodejs, a następnie próbowałem zainstalować npm. To okazało się problemem (npm instalował się z EPEL). Repozytorium Nodesource nie zapewnia indywidualnych pakietów dla npm, jak ma to miejsce w przypadku EPEL. Zamiast tego wszystko jest w jednym pakiecie „nodejs”. Więc kiedy zainstalujesz nodejs z Nodesource, teraz automatycznie zainstalowałeś npm i jesteś gotowy do aktualizacji.
źródło
Walczyłem z tym samym problemem, ani
yum clean all
nierm -f /etc/yum.repos.d/nodesource*
pomagałem. Potem odkryłem, że yum użył repozytorium Epel do zainstalowania węzła, więc tymczasowo go wyłączyłem (w/etc/yum.repos.d/epel.repo
zestawieenabled=0
), a potemźródło
Zetknąłem się również z tym samym problemem.
Rozwiązanie: 1. Przejdź do
/tmp
lokalizacji, usuń wszystkie pliki i foldery.2. teraz możesz użyć poniższych poleceń, aby zainstalować NodeJs
źródło