Warum wird die richtige neue Version von Node.js nicht unter CentOS 7 installiert?

11

Hinweis: Dies ist teilweise gelöst, erfordert jedoch etwas mehr Aufmerksamkeit. Siehe Hinweise unten im OP und die teilweise Antwort von @ Digisec.

Ich versuche, Node.js unter CentOS 7 einzurichten, aber die folgenden Befehle können die neueste Version nicht installieren. Was muss ich im folgenden Code ändern, um die neueste Version von Node.js unter CentOS 7 zu installieren?

Ich beginne mit der Eingabe, node --versionwas dazu führt v0.12.7. Dies ist eindeutig eine alte Version , da nodejs.orgsagt , dass v5.6.0die letzte stabile Version ist.

Dann tippe ich Folgendes ein, um die neueste Version von node.js zu erhalten:

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

Das Terminal druckt aus, dass ich Folgendes eingeben sollte, um die veraltete Version von node.js zu entfernen, also gebe ich Folgendes ein:

yum remove -y nodejs npm

Das Terminal sagt außerdem, dass Folgendes eingegeben werden muss, um die neueste Version von node.js zu installieren. Daher gebe ich Folgendes ein:

yum install -y nodejs

Aber dann tippe ich noch node --versioneinmal und das Terminal antwortet v0.12.7erneut mit und zeigt, dass die vorhergehenden Befehle einfach die alte veraltete Version erneut installiert haben.

Was muss ich also tun, um die neueste stabile Version von node.js auf dem CentOS 7-Computer zu installieren?


LAUFENDE BEMÜHUNGEN:


Gemäß dem Vorschlag von @ Digisec habe ich die obigen Befehle erneut ausgeführt, diesmal jedoch die gesamte Ausgabe im folgenden Text aufgezeichnet. Bitte beachten Sie, dass die Reihenfolge jetzt, da ich sie erneut ausführe, etwas anders ist, das Ergebnis jedoch wie folgt ist:

[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]#   

Dann habe ich gemäß der Antwort von @ Digisec als nächstes Folgendes versucht, aber das Ergebnis ist immer noch nicht in der Lage, die richtige Version zu installieren , wie Sie anhand der folgenden Terminalausgabe sehen können:

[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]# 

Ich habe dann den Knowledge Base-Artikel besucht, auf den im obigen Fehlerprotokoll verwiesen wird , aber festgestellt, dass ich nicht auf den vollständigen Artikel zugreifen kann, da ich kein Red Had-Kunde bin.


TEILLÖSUNG:


@Digisec hat dieses Problem teilweise gelöst, indem gezeigt wurde, wie die neue Version installiert wird. Wir können die alte Version jedoch immer noch nicht entfernen, wodurch das Risiko von Konflikten in Zukunft besteht. Welche Schritte müssen unternommen werden, um die alte Version zu entfernen, damit die neue Installation sauber und vollständig sein kann?

Ich habe die Tar-URL für die alte Version v0.12.7 unter diesem Link gefunden . Und @Digisec 'schlug auch vor, diesen anderen Link zumake uninstall lesen , der die Verwendung des Befehls vorschlägt . Ich habe das Gefühl, dass möglicherweise nur fünf oder zehn Befehle in das Terminal eingegeben werden müssen, um die alte Version 0.12.7 zu entfernen und die neue Version von nodejs neu zu installieren. Was sind die erforderlichen Befehle?

Ich habe anscheinend drei TAR-Dateien auf dem CentOS 7-Computer gefunden, die sich auf nodejs v0.12.7 beziehen, indem ich die folgenden Terminalbefehle verwendet habe:

[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 /]# 

Beachten Sie, dass zusätzlich drei TAR-Dateien markiert sind, node_modulesderen Beziehung zu v0.12.7nicht klar ist.

Welche spezifischen Befehle führe ich aus, v0.12.7um alle v0.12.7zugehörigen TAR-Dateien sicher zu deinstallieren und vom Computer zu entfernen ?

CodeMed
quelle
Es wäre eine gute Idee, auch alle Ausgaben zu veröffentlichen. Das würde helfen zu sehen, was passiert, um Ihnen besser helfen zu können.
Digisec
@Digisec Ich habe die Befehle erneut ausgeführt und dann die vollständige Ausgabe wie gewünscht zum OP hinzugefügt. Kann ich noch etwas tun, um das Problem einzugrenzen?
CodeMed
FWIW können Sie jetzt die alte Version von NodeJS mit deinstallieren yum remove -y nodejs.
Avazula

Antworten:

7

Ich habe gerade den Link überprüft, von dem Sie dies erhalten haben. Sie installieren speziell die Version 0.10oder versuchen es zumindest, aber Sie haben eine neuere Version im Repo, das installiert wird. Sie müssen dem Setup für Knoten v5 folgen.

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

PS : Lesen Sie zum späteren Nachschlagen die Websites sorgfältig durch, insbesondere wenn Sie Befehle als root ausführen .

EDIT: Okay, es scheint, dass Sie das Repo richtig hinzugefügt haben. Wenn Sie sich das Repo ansehen, sind Ihre Pakete vorhanden, aber das System sucht nach der falschen Version. An dieser Stelle würde ich vorschlagen.

yum clean all && yum update

Dadurch wird das zwischengespeicherte Repo bereinigt und von der Fernbedienung abgerufen.

Antwort: Nach der Arbeit, die wir über das erledigt haben chat, ist hier die richtige Antwort für Sie. nodejs v5gut installiert. Sie haben zuvor nodejs v0.12manuell kompiliert , was bei binären Distributionen keine gute Idee ist, da Sie an dieser Position landen werden.

which node

ist zurückgekommen

/usr/local/bin/node

während

/usr/bin/node

gab die richtige Antwort von zurück v5.x.

An diesem Punkt haben Sie mehrere Möglichkeiten, um das Problem zu beheben, aber ich würde 2 empfehlen.

  • Option 1 : Dies ist der einfache Ausweg. Sie können Ihre bearbeiten .bashrcund eine hinzufügen alias, die zeigt node -> /usr/bin/node. Dies ist so einfach wie das Hinzufügen alias node="/usr/bin/node". Dies wird jedes Mal die richtige Version aufrufen, aber ich kann nicht garantieren, dass es in Zukunft keine Konflikte mit Bibliotheken geben wird.
  • Option 2 : Dies ist der schwierige Weg, der jedoch behoben wird. yumLöschen Sie zunächst mit den auf dem System installierten Knotenjs. Zweitens holen Sie sich den Tarball für die Version, die Sie kompiliert haben, entpacken Sie ihn ./configureund deinstallieren Sie ihn. Diesen Schritt können Sie leicht online finden . Schließlich installieren Sie nodejsdurch yum, und das sollte Ihr Problem beheben.
Digisec
quelle
Vielen Dank, dass Sie sich damit befasst haben, aber das Problem wird dadurch immer noch nicht vollständig behoben. Bitte beachten Sie die zusätzliche Terminalausgabe, die ich am Ende des OP hinzugefügt habe, um die Ergebnisse des Versuchs Ihres Vorschlags zu dokumentieren. Was kann ich noch versuchen?
CodeMed
@CodeMed Ich habe die Antwort aktualisiert und es wäre eine bessere Idee, in den Chat zu gelangen.
Digisec
Das Problem wurde dadurch nicht gelöst. Wenn Sie immer noch bereit sind zu chatten, habe ich den folgenden Raum erstellt: chat.stackexchange.com/rooms/35670/…
CodeMed
@CodeMed Viel Glück bei der Behebung Ihres Problems.
Digisec
Sind Sie bereit, Ihre Option 2 näher zu erläutern? Oder sollte ich eine separate Frage stellen?
CodeMed
4

Was ich getan habe:

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

und ich bekam:

v7.2.0
Sergio
quelle
Danke! Dies war die einzige Lösung, die mir geholfen hat.
626
1

Ich habe versucht, den Knoten von demselben NodeSource RepoInstaller zu installieren . Für meinen Weg Problem durch aktiviertes nodesourceRepo gelöst . Ändern Sie enabled=0zu enabled=1und alles sollte funktionieren.

[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
quelle
0

Ich hatte auch einige Probleme, die neuen Versionen von npm und nodejs unter CentOS 7 zu installieren.

Ich habe die Anweisungen auf der Website nodejs befolgt und dann versucht, npm zu installieren. Dies stellte sich als Problem heraus (npm wurde von EPEL installiert). Das Nodesource-Repository stellt keine einzelnen Pakete für npm bereit, wie dies bei EPEL der Fall ist. Stattdessen befindet sich alles in einem einzigen Paket 'nodejs'. Sobald Sie nodejs von Nodesource installiert haben, haben Sie npm automatisch installiert und können mit der aktualisierten Version fortfahren.

Ben
quelle
0

Ich hatte mit dem gleichen Problem zu kämpfen yum clean allund rm -f /etc/yum.repos.d/nodesource*half auch nicht. Dann stellte ich fest, dass yum das Epel-Repository zum Installieren des Knotens verwendete, sodass ich ihn vorübergehend (im /etc/yum.repos.d/epel.repoSet enabled=0) und danach deaktivierte

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

Ich habe auch das gleiche Problem konfrontiert.

Lösung: 1. Gehen Sie zum /tmpSpeicherort und entfernen Sie alle Dateien und Ordner.

cd /tmp
rm -rf *

2. Jetzt können Sie die folgenden Befehle verwenden, um NodeJs zu installieren

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