GNU/Linux >> LINUX-Kenntnisse >  >> Cent OS

Centos – Warum wird die richtige neue Version von Node.js nicht auf Centos 7 installiert?

Hinweis:Dies ist teilweise gelöst, erfordert jedoch etwas mehr Aufmerksamkeit. Siehe Anmerkungen am Ende von OP und die Teilantwort 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 auf CentOS 7 zu installieren?

Ich beginne mit der Eingabe von node --version was zu v0.12.7 führt . Dies ist eindeutig eine alte Version, da nodejs.org sagt, dass v5.6.0 ist die neueste stabile Version.

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

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

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

yum remove -y nodejs npm

Das Terminal sagt auch, dass Sie Folgendes eingeben müssen, um die neueste Version von node.js zu installieren, also gebe ich Folgendes ein:

yum install -y nodejs

Aber dann gebe ich node --version ein erneut, und das Terminal antwortet mit v0.12.7 erneut, was zeigt, dass die vorherigen 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-Rechner 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 Sequenz jetzt, wo ich sie erneut ausführe, etwas anders ist, aber das Ergebnis ist dasselbe, wie folgt:

[[email protected] ~]# node --version
v0.12.7
[[email protected] ~]# cd /tmp
[[email protected] 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`

[[email protected] 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!
[[email protected] 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!
[[email protected] tmp]# node --version
v0.12.7
[[email protected] tmp]#   

Dann gemäß der Antwort von @Digisec , habe ich als nächstes Folgendes versucht, aber das Ergebnis ist immer noch, dass die richtige Version nicht installiert werden kann , wie Sie der folgenden Terminalausgabe entnehmen können:

[[email protected] 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`

[[email protected] 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!
[[email protected] 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.

[[email protected] 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.

[[email protected] tmp]# node --version
v0.12.7
[[email protected] 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.

Verwandte:Linux – Standard- und/oder gemeinsame Verzeichnisse auf Unix/Linux-Betriebssystemen?

TEILLÖSUNG:

@Digisec hat dies teilweise gelöst, indem gezeigt wurde, wie die neue Version installiert wird, aber wir können die alte Version immer noch nicht entfernen, wodurch das Risiko zukünftiger Konflikte 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 zu lesen, der die Verwendung des Befehls make uninstall vorschlägt . Ich habe das Gefühl, dass es vielleicht nur fünf oder zehn Befehle gibt, die in das Terminal eingegeben werden müssen, um die alte v0.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 verwende:

[[email protected] ~]# cd /
[r[email protected] /]# 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
[[email protected] /]# 

Beachten Sie, dass es drei zusätzliche tar-Dateien gibt, die mit node_modules gekennzeichnet sind dessen Beziehung zu v0.12.7 ist nicht klar.

Welche spezifischen Befehle führe ich aus, um v0.12.7 sicher zu deinstallieren und entfernen Sie alle v0.12.7 zugehörigen tar-Dateien von der Maschine?

Akzeptierte Antwort:

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

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

PS :Stellen Sie zum späteren Nachschlagen sicher, dass Sie die Sites sehr sorgfältig lesen, insbesondere wenn Sie Befehle als root ausführen .

BEARBEITEN: In Ordnung, es scheint, dass Sie das Repo richtig hinzugefügt haben. Wenn Sie in das Repo schauen, sind Ihre Pakete dort, 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 Ferne abgerufen.

Verwandte:Warum versucht Windows Update, ein Update zu installieren, das ich nicht benötige?

Antwort: Nach getaner Arbeit über den chat , hier ist die richtige Antwort für Sie. nodejs v5 prima installiert. Sie haben zuvor nodejs v0.12 kompiliert manuell, was bei binären Distributionen keine gute Idee ist, da Sie sonst in dieser Position landen werden.

which node

zurückgegeben

/usr/local/bin/node

während

/usr/bin/node

hat die richtige Antwort von v5.x zurückgegeben .

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

  • Möglichkeit 1 :Das ist der einfache Ausweg. Sie können Ihre .bashrc bearbeiten und fügen Sie einen alias hinzu das zeigt auf node -> /usr/bin/node . Dies ist so einfach wie das Hinzufügen von 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.
  • Möglichkeit 2 :Das ist der harte Weg, aber es wird es beheben. Löschen Sie zuerst mit yum die nodejs, die auf dem System installiert ist. Zweitens, holen Sie sich den Tarball für die Version, die Sie kompiliert haben, entpacken Sie ihn, ./configure und deinstallieren Sie es. Diesen Schritt können Sie ganz einfach online finden. Installieren Sie schließlich nodejs neu durch yum , und das sollte Ihr Problem beheben.

Cent OS
  1. So installieren Sie die neueste Version von Python 3 unter CentOS 7

  2. So installieren Sie den LAMP-Stack unter CentOS 7

  3. So installieren Sie Node.js und NPM unter CentOS

  4. So installieren Sie MongoDB 4.2/4.0 unter CentOS 6/RHEL 6

  5. So installieren Sie die CSF-Firewall unter CentOS 7

So installieren Sie PHP 7.4 auf CentOS 8

So installieren Sie die neueste LibreOffice-Version auf CentOS 8

So installieren Sie eine bestimmte Kernel-Version in CentOS

So installieren Sie Node.js unter CentOS 7

So installieren Sie die Nginx Mainline-Version unter CentOS 7

So installieren Sie Node.js auf CentOS Stream 9