Wie installiere ich Node.JS unter CentOS?


131

Ich habe zahlreiche Installationsanweisungen für Node.js gefunden, aber sie scheinen alle so kompliziert zu sein - ich bin kein Super-Sys-Administrator, aber ich kann herumkommen. Ich habe yum auf dem System, aber ich habe keine node.js-Pakete gefunden, und ich bin nicht sicher, wie ich Code auf dem Server kompilieren soll oder wo ich ihn ablegen soll.


Vielen Dank für die tollen Antworten an alle. Ich glaube du kannst jetzt sowohl nodejs als auch npm installieren! awesome
qodeninja


... mit EPEL (Installationsanweisungen, falls Sie das Repo noch nicht haben: rackspace.com/knowledge_center/article/… ).
Geerlingguy

Ich denke, das EPEL-Zeug funktioniert nicht mehr - oder funktioniert nicht in Centos 7.
jcollum

Antworten:


139
su - 
yum install gcc-c++ openssl-devel
cd /usr/local/src
wget http://nodejs.org/dist/node-latest.tar.gz
tar zxvf node-latest.tar.gz
(cd into extracted folder: ex "cd node-v0.10.3")
./configure
make
make install

Beachten Sie, dass hierfür Python 2.6+ erforderlich ist ./configure. Sie können die Datei "configure" so ändern, dass sie python2.7bei Bedarf auf Zeile 1 zeigt.

Um ein RPM-Paket zu erstellen, können Sie FPM verwenden :

# wget http://nodejs.org/dist/node-latest.tar.gz
# tar zxvf node-latest.tar.gz
(cd into extracted folder: ex "cd node-v0.10.3")
# ./configure --prefix=/usr/
# make
# mkdir /tmp/nodejs
# make install DESTDIR=/tmp/nodejs/
# tree -L 3 /tmp/nodejs/
/tmp/nodejs/
└── usr
    ├── bin
    │   ├── node
    │   ├── node-waf
    │   └── npm -> ../lib/node_modules/npm/bin/npm-cli.js
    ├── include
    │   └── node
    ├── lib
    │   ├── dtrace
    │   ├── node
    │   └── node_modules
    └── share
        └── man

Machen Sie jetzt das nodejsPaket:

# fpm -s dir -t rpm -n nodejs -v 0.8.18 -C /tmp/nodejs/ usr/bin usr/lib

Dann installiere und überprüfe die Version:

# rpm -ivh nodejs-0.8.18-1.x86_64.rpm 
Preparing...                ########################################### [100%]
   1:nodejs                 ########################################### [100%]

# /usr/bin/node --version
v0.8.18

Quelle: https://github.com/jordansissel/fpm/wiki/PackageMakeInstall


3
aber das geht davon aus das ich make installiert habe oder? Was würde ich nicht tun?
Qodeninja

9
Ich musste yum installieren gcc-c ++
Yehosef

17
Obwohl dies technisch korrekt ist, wird für jede Art von Wartbarkeit oder Wiederholbarkeit dringend empfohlen, Pakete über RPM (oder über die Verpackung Ihrer Distribution) zu verwalten, anstatt sie manuell von der Quelle auf jedem Computer zu erstellen und zu installieren, auf dem sie benötigt werden. Eine Reihe der folgenden Antworten verweist auf vorgefertigte Pakete.
Jason Antman

5
Der Versuch, Node.JS und eines seiner Ökosysteme über RPM zu verwalten, ist derzeit eine vergebliche Übung, und ich sage dies als jemand, der kurz ein Yum-Repo mit Node und einer Reihe von Modulpaketen erstellt hat.
Jgoldschrafe

5
@IsaacRabinovitch Sie fügten einen Ternär hinzu if, der erst mit Python 2.5 zustande kam. Da CentOS dem RHEL-Pfad folgt, das System Python an eine benutzerdefinierte Patch-Version von 2.4 zu binden, bestand meine Lösung darin yum install python26 python26-devel, diese python26 configureanstelle von auszuführen ./configure. Dann, da das Makefileauch Python-Skripte ausführt, habe ich die PYTHONVariable dort als python26statt definiert python. Außerdem wirst du dort etwas brauchen. g++Wenn du es noch nicht getan hast , solltest du es tun yum install gcc-++.
Hank Gay

64

Wenn Sie CentOS 6.x haben und das EPEL-Repository aktiviert haben , können Sie mit yum node / npm installieren:

$ sudo yum install npm

Überprüfen Sie nach Abschluss der Installation, ob der Knoten ordnungsgemäß eingerichtet ist:

$ node -v

(Sollte so etwas zurückgeben v0.10.36).

Wenn Sie spätere Versionen von Node.js (z. B. 4.x, 5.x usw.) wünschen , können Sie das YUM-Repository von Nodesource anstelle von EPEL verwenden.


2
Dies funktionierte wunderbar auf meinem CentOS 6.4 System und gab mir Knoten und Npm. Ich habe Node 0.10.13, nur ein wenig vom neuesten src-Tarball 0.10.15 entfernt. Es sieht so aus, als müsste mehr abgestimmt werden, um hervorzuheben, dass die Option "Installation von der Quelle" übertrifft.
Neek

1
Folgen Sie dieser Anleitung, um EPEL repo zu installieren.
Lee Chee Kiam

1
Zum Aktualisieren von enable epel repository run yum install -y epel-releasekönnen Sie node und npm mit yum installieren.
Svassr

Ich konnte das Epel oder die Epel-Veröffentlichung nicht mit yum für v4.2.x zusammenbringen. Die Antwort von nave.sh funktionierte wunderbar.
jcollum

1
Bei der Installation über yum habe ich eine sehr alte Version v0.10.42 ... Wie kann ich Node über yum / rpm installieren, um die neueste Version (derzeit 5.9.0) zu erhalten?
Dokaspar

27

Die Übersicht "Installieren von Node.js über den Paketmanager" enthält KEINE Anweisungen mehr zum Installieren von Nodejs unter CentOS. Seit Fedora 18 gehören nodejs zum Standardrepo. Ich versuche es mit "epel-fedora-nodejs" und finde, dass es nicht mehr aktualisiert wird, wobei die Version auf der veralteten Version 0.6.0 belassen wird.

Die gute Nachricht ist, dass wir Kirchenschiff , eine virtuelle Umgebung für Knoten, haben, um uns zu helfen.

https://github.com/isaacs/nave

Die Installation von nodejs ist jetzt kinderleicht.

$ wget https://raw.github.com/isaacs/nave/master/nave.sh
$ chmod +x nave.sh
$ ./nave.sh install 0.8.8
$ ./nave.sh use 0.8.8
$ node -v  
v0.8.8

In der Datei nave.sh müssen Sie möglicherweise die lokalen URLs so ändern, dass sie mit der neuesten dist-Struktur von nodejs übereinstimmen. Für 0.11.0 habe ich die nave.sh geändert, um die folgende URL zu haben

" http://nodejs.org/dist/v $ version / node-v $ version-linux-x64.tar.gz"


1
nodejs.tchol.org ist jetzt tot
Explunit

@explunit Ich aktualisiere nur die Antwort. Bitte versuchen Sie es mit nave.
User974312

Zu Ihrer Information: Dies scheint nur für diesen Benutzer zu installieren. Wenn Sie es für das gesamte System installiert werden soll: ./nave.sh usemain <Ihre Version>
Ahle

"nodejs wird Teil des Standard-Repos" - auf CentOS 7 ist es unglaublich veraltet. Die installierte Version ist v10.x (auf dem CentOS, das unsere IT-Abteilung sowieso verwendet).
jcollum

13

Für CentOS

yum install gcc-c++ make git
cd /usr/local/src/
git clone git://github.com/joyent/node.git
cd node
./configure
make
make install

2
Sie sollten eine veröffentlichte Version verwenden, nicht die Github-Version, es sei denn, Sie möchten einen Beitrag zum Knotenprojekt leisten.
BT

11

[Bearbeiten] Vielen Dank, David, dass du in den Kommentaren unten darauf hingewiesen hast, dass die Seite von nodejs.tchol.org jetzt auf eine Spam-Seite verweist (sic!). Also funktioniert diese Antwort nicht mehr, benutze sie nicht!

Ich kann bestätigen, dass die von Chris in seiner Lösung erläuterte Methode in CentOS 5.4 funktioniert (ich habe es vor einer Minute getan :))

wget http://nodejs.tchol.org/repocfg/el/nodejs-stable-release.noarch.rpm
yum localinstall --nogpgcheck nodejs-stable-release.noarch.rpm
yum install nodejs-compat-symlinks npm

PS: Natürlich musst du root sein (oder sudo benutzen), um das zu installieren.

Neben der Installation von der Quelle (was immer eine Option ist) gibt es vielleicht noch eine Alternative: Hier habe ich gelesen, dass "node.js ab Dezember 2012 in Fedora Rawhide akzeptiert wurde und in Fedora 18 verfügbar sein wird." , also wird es vielleicht irgendwann in die Standard-CentOS-Repositories gelangen

Ich schaue mir das an ..


3
Dies funktionierte wunderbar auf CentOS 6. Danke!
KyleFarris

12
"nodejs.tchol.org" ist jetzt tot
David Newcomb

2
Daher sollten Sie nur von der Quelle installieren. Hab keine Angst.
John Hunt

2
@JohnHunt Von der Quelle installieren bedeutet, dass Sie nicht mehr sauber deinstallieren können. Ich hatte das gleiche Problem mit Ruby. Zum Glück konnte ich nur das VM-Image zurücksetzen ... Wenn Sie von der Quelle installieren, müssen Sie ein tiefes Verständnis für das Paket haben, das Sie installieren. Angesichts der Tatsache, dass es Tausende von Linux-Paketen gibt, ist dies keine Option!
Christian

1
"Der Link oben"? Die Antworten sind nach Stimmen sortiert, und die von Chris liegt jetzt unter Ihrer.
Isaac Rabinovitch

10

Wie oben erwähnt, ist "tchol.org" nicht mehr vorhanden, und die Leute von CentOS versuchen, entweder die Verwendung eines Paketmanagers aufzugeben oder zu einem anderen Betriebssystem zu wechseln. Ich schloss mit mir selbst einen Pakt gegen jeden (erneuten) Versuch mit allen außer Experimental / Dev-Boxen.

Glücklicherweise sind noch RPMs verfügbar unter: http://patches.fedorapeople.org/oldnode/stable/el6/x86_64/

Ignorieren Sie einfach die Drehzahl für den Repo-Installer, der Yum zur nicht mehr verfügbaren Site weiterleitet. Das sollte uns ein wenig Zeit verschaffen, es sei denn / bis sie zu veraltet sind.

Ich halte meine Augen offen für neuere Repos und poste zurück, wenn ich sie finde.


Ich würde sagen, die 0.6-Version in Ihrem Link ist schon ziemlich veraltet. Es scheint, als gäbe es
momentan

8

Das hat bei mir unter CentOS 5.7 funktioniert:

yum install openssl-devel 
yum install python27
yum install gcc-c++
cd /usr/local/src
wget http://nodejs.org/dist/node-latest.tar.gz
tar zxvf node-latest.tar.gz
cd node-v[tab]
python2.7 configure
make PYTHON=python2.7
make install

3
Ich muss Python 2.6 auf meinem CentOS 5.10 verwenden, da Python 2.7 nicht in Repo ist.
Ohho

7

Es gibt noch einen Ansatz, den ich in keiner der anderen Antworten gesehen habe, nämlich die Verwendung der seit 0.8.6 veröffentlichten Binärdistributionen für Linux

Hier ist das Skript, das ich benutze:

# get the latest stable binary 
latest_node=$(curl http://nodejs.org/dist/latest/SHASUMS.txt | grep 'linux-x64.tar.gz' | awk '{ print $2 }')
wget -O ~/nodestable.tar.gz http://nodejs.org/dist/latest/$latest_node
cd /usr/local/
sudo tar xzvf ~/nodestable.tar.gz --strip=1

Oder, wenn Sie eine bestimmte Version möchten (z. B. um auf der 0.8-Serie zu bleiben):

wget http://nodejs.org/dist/v0.8.22/node-v0.8.22-linux-x64.tar.gz
cd /usr/local/
sudo tar xzvf ~/node-v0.8.22-linux-x64.tar.gz --strip=1

Und für mich unter CentOS 6.3 musste ich die folgenden Links hinzufügen, damit die Node- und Npm-Befehle entweder von normalen Benutzern oder von sudo aus ausgeführt wurden. Wird je nach Version möglicherweise nicht benötigt.

sudo ln -s /usr/local/bin/node /usr/bin/node
sudo ln -s /usr/local/lib/node /usr/lib/node
sudo ln -s /usr/local/bin/npm /usr/bin/npm
sudo ln -s /usr/local/bin/node-waf /usr/bin/node-waf

Ehrlich gesagt ist die Situation für node.js auf CentOS / RHEL ziemlich schlecht, da keines der Repos node.js enthält (siehe verwandte Frage hier ). Diese Antwort hat die gleichen Nachteile wie zuvor beim Kompilieren aus dem Quellcode erwähnt.


7

Die obigen Antworten sind veraltet

ALS WURZEL

curl -sL https://rpm.nodesource.com/setup | bash -
yum install -y nodejs

und du bist fertig.

Bestätigen Sie Ihre Installation mit

node -v

Meine Version von curl scheint die Signaturautorität des SSL-Zertifikats der URL nicht zu mögen, daher schlägt das Skript unbemerkt fehl. Sie können mit der Option curl -k daran vorbeikommen.
Spike Williams

Nachdem Sie dem obigen Befehl curl -k hinzugefügt haben, müssen Sie auch den Verweis auf das Herunterladen von Curl-Dateien aus dieser Domäne im Skript "setup" aktualisieren, das heruntergeladen wird. Führen Sie das Skript dann manuell mit bash aus.
Spike Williams

5

Niemand erwähnt nvm, um (mehrere) sichere und einfache Knoteninstallationen zu verwalten https://github.com/creationix/nvm ? Ich finde es so nützlich.

Auch nützlich , um einen Knoten Release - Dateien Baum zu bauen und so individuelle rpm - Pakete ohne Scripting zu viel, latest-node, wget, ./configure, make, make installbla bla.

nvm install 0.10.9

Lädt Binärdateien herunter oder kompiliert den Quellcode entsprechend der Veröffentlichung.


Gibt es eine Offline-Installation?
Amit Patel

4

Führen Sie als root auf RHEL, CentOS oder Fedora für Node.js v4 LTS Argon Folgendes aus:

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

Alternativ für Node.js v5:

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

Alternativ für Node.js 0.10:

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

Dann installiere als root:

yum -y install nodejs

Quelle: https://nodejs.org/en/download/package-manager/


Die einzige Antwort, die für CentOS 7.2 funktioniert. Und so schnell und perfekt gearbeitet.!
writeToBhuwan

Empfehlung: Besuchen Sie das NVM-Projekt auf GitHub und lesen Sie die endgültigen Anweisungen in der README-Datei: github.com/creationix/nvm#installation
Kay V

3

Ich habe einige ziemlich einfache Anweisungen zusammen mit einer .spec-Datei hier:

http://www.chrisabernethy.com/installing-node-js-on-centos-redhat/

Sie werden dies aus dem Quellcode kompilieren, daher müssen Sie sicherstellen, dass Sie alle erforderlichen Pakete dafür auf Ihrem System haben (gcc und friends). Diese Anleitung dient zum Erstellen eines RPM. Wenn Sie also die erforderlichen Pakete vermissen, teilt Ihnen rpmbuild mit, welche Sie zuerst installieren müssen.


1
Willkommen bei Server Fault! Während dies theoretisch die Frage beantworten mag, wäre es vorzuziehen , die wesentlichen Teile der Antwort hier aufzunehmen und den Link als Referenz bereitzustellen.
Benutzer9517

Außerdem verweist der Link auf / usr / src / redhat, das in meiner CentOS 5-Installation anscheinend nicht vorhanden ist (es befindet sich unter / usr / local / src, wenn ich es richtig verstehe)
Kato,

2
Bei den letzten Änderungen müssen die Benutzer auch ihre Python-Installation aktualisieren (oder configure funktioniert auf keinem CentOS-Server, der noch Python 2.4 verwendet). Möchten Sie die Informationen auffrischen und hier ablegen?
Tim Post

3

Du brauchst auch npm

git clone https://github.com/isaacs/npm.git
cd npm
sudo make install

Nicht mehr Amy kommt es mit Knoten.
ThomasReggi

3

Sie können Nodebrew verwenden . $ curl -L git.io/nodebrew | perl - setup $ export PATH=$HOME/.nodebrew/current/bin:$PATH $ source ~/.bashrc $ nodebrew install-binary latest $ nodebrew use latest $ node -v


2

Für Ubuntu funktionierte dies für mich ab Version 0.4.10

cd /usr/local/src/
sudo wget http://nodejs.org/dist/node-v0.4.10.tar.gz
sudo tar zxvf node-v0.4.10.tar.gz 
cd node-v0.4.10/
sudo ./configure 
sudo make
sudo make install

Frage ist für CentOS
jcollum

2

Hier ist meine Docker-Datei, die den Knoten v0.10.36 in CentOS 7 installiert hat

FROM centos:7

RUN    yum -y update
RUN    yum -y install vi, vim, unzip, tar
RUN    yum -y install wget, curl, git

RUN    yum -y install epel-release
RUN    yum -y install npm

2

Meine Antwort für Version 4+:

yum -y install wget
wget https://nodejs.org/dist/v4.0.0/node-v4.0.0-linux-x64.tar.gz
tar xzf node-v4.0.0-linux-x64.tar.gz -C /usr/local
rm -rf node-v4.0.0-linux-x64.tar.gz
mv /usr/local/node-v4.0.0-linux-x64 /usr/local/node
ln -s /usr/local/node/bin/node /usr/bin/node
ln -s /usr/local/node/bin/npm /usr/bin/npm

Suchen Sie im Ordner https://nodejs.org/dist/latest/ nach dem Download-Link für die neueste Version.


Dies hat mich auf dem CentOS-Server gerettet, auf dem Plesk ausgeführt wird - das Erstellen der neuesten Version (5) aus dem Quellcode schlägt fehl, da gcc so veraltet ist. Ich würde gcc aktualisieren, aber normalerweise wird Plesk durch manuelles Aktualisieren über yum zu einem schreienden Kind.
Twistedpixel

Gibt es einen Teer für 4.x Stable? Die Antwort wird besser sein, wenn es ein paar Versionsänderungen überlebt.
JCOLLUM

Ich habe meine Antwort so bearbeitet, dass sie einen Link zum neuesten Distributionsordner enthält, in dem Sie die distro-spezifische Installation finden.
Evan Siroky

1

Der folgende Code funktionierte unter CentOS 6 ziemlich gut

wget http://nodejs.tchol.org/repocfg/el/nodejs-stable-release.noarch.rpm
yum localinstall --nogpgcheck nodejs-stable-release.noarch.rpm
yum install nodejs-compat-symlinks npm

Es funktioniert nicht mehr, http://nodejs.tchol.org ist nicht mehr online.


Früher hat es funktioniert. Diese Maschine existiert nicht mehr, wie es aussieht.
Rox0r

1

Ich habe diese Installation vor nicht allzu langer Zeit auf RHEL 5.8 selbst durchgeführt. Da nodejs.tchol.org offline ist, besteht die einzige Möglichkeit darin, es aus dem Quellcode zu erstellen.

Der Erstellungsprozess wurde jedoch ziemlich kompliziert, da das Erstellungsskript Python-Code enthält, der mit der Standardversion von Python unter RHEL nicht funktioniert. Nach vielem Ausprobieren (und vielem Googeln) habe ich diesen Blog-Beitrag gefunden, der im Grunde eine Schritt-für-Schritt-Anleitung für die folgenden erforderlichen Aufgaben beschreibt.

ein. Installieren Sie Python 2.6 b. Richten Sie diese Version von Python als alternative Version ein und legen Sie sie dann als Standard fest. C. Konfigurieren und Installieren von node.js d. Python auf die Standardversion 2.4 zurücksetzen.

Der Schlüssel ist, dass Sie danach wieder zu Python 2.4 wechseln sollten; sonst scheitern einfache Dinge wie yum.

http://www.robeesworld.com/blog/31/installing_node_js_0_8_under_centos_5_8


1

Nach der Installation mit der bestbewerteten Antwort konnte ich keine globalen Module (-g) ohne Sudo-Berechtigungen installieren. NPM-Update zeigte Fehler. Die folgende Methode hat für mich perfekt funktioniert, es sind keine SU- oder SUDO-Berechtigungen erforderlich.

Ich habe Node.js und NPM mithilfe der folgenden Methode aus ( https://gist.github.com/isaacs/579814 ) installiert, aber zwei Befehlszeilen gemäß dem Hinweis eines Kommentars von deesejohn auf dieser Seite geändert.

cd
sudo yum install gcc-c++
echo 'export PATH=$HOME/local/bin:$PATH' >> ~/.bashrc
. ~/.bashrc
mkdir ~/local
mkdir ~/node-latest-install
cd ~/node-latest-install
curl http://nodejs.org/dist/node-latest.tar.gz | tar xz --strip-components=1
./configure --prefix=$HOME/local
make install
curl -L https://www.npmjs.org/install.sh | sh

Überprüfen Sie die installierte Version mit node -vundnpm -v

Durch die Nutzung unserer Website bestätigen Sie, dass Sie unsere Cookie-Richtlinie und Datenschutzrichtlinie gelesen und verstanden haben.
Licensed under cc by-sa 3.0 with attribution required.