Frage Wie installierst du Node.JS auf CentOS?


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 komme zurecht. Ich habe yum auf dem System, aber ich habe keine node.js Pakete gefunden, und ich bin mir nicht sicher, wie man Code auf dem Server kompiliert oder wo man ihn setzt.


130
2017-08-09 16:15


Ursprung


Danke für die tollen Antworten an alle. Ich glaube, Sie können jetzt sowohl nodejs als auch npm installieren! genial - qodeninja
dl.fedoraproject.org/pub/epel/6/x86_64/repoview/nodejs.html - Yolo Perdiem
... mit EPEL (Installationsanweisungen, falls Sie das Repo noch nicht haben: rackspace.com/knowledge_center/article/...). - geerlingguy
Ich glaube nicht, dass das EPEL-Zeug mehr funktioniert - oder nicht in Centos 7 funktioniert. - jcollum


Antworten:


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 über. Sie können die "configure" -Datei ändern, auf die verwiesen werden soll python2.7 in Zeile 1, falls erforderlich.

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

# 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

Jetzt mach das nodejs Paket:

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

Dann installiere und prü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


139
2018-05-19 17:44



aber das ist davon ausgegangen, dass ich richtig installiert habe? Was ID ich nicht? - qodeninja
Ich musste yum installieren gcc-c ++ - Yehosef
Obwohl dies technisch korrekt ist, ist es für jede Art von Wartbarkeit oder Wiederholbarkeit sehr empfehlenswert, Pakete über RPM (oder was auch immer die Verpackung Ihrer Distribution ist) zu verwalten, anstatt manuell auf jeder Maschine, wo sie gebraucht wird, von der Quelle zu bauen und zu installieren. Eine Anzahl der Antworten unten verlinkt auf vorgefertigte Pakete. - Jason Antman
Der Versuch, Node.JS und jedes seiner Ökosysteme über RPM zu verwalten, ist eine sinnlose Übung, und ich sage das als jemand, der kurzzeitig ein Yum-Repo mit Knoten und einer Anzahl von Modulpaketen ausgeführt hat. - jgoldschrafe
@IsaacRabinovitch Sie haben ein ternäres hinzugefügt if, die bis Python 2.5 nicht zustande kam. Da CentOS dem RHEL-Pfad folgt, bei dem das System Python an eine benutzerspezifische Version von 2.4 angehängt wird, war meine Lösung yum install python26 python26-devel und dann ausführen python26 configure anstatt ./configure. Dann, seit der Makefile führt auch Python-Skripte aus, die ich definiert habe PYTHON Variable drin zu sein python26 anstatt python. Außerdem wirst du brauchen g++ dort, also wenn du nicht schon hast, solltest du yum install gcc-++. - Hank Gay


Wenn Sie CentOS 6.x haben und haben aktiviert das EPEL-Repositorykönnen Sie yum verwenden, um node / npm zu installieren:

$ sudo yum install npm

Nachdem die Installation abgeschlossen ist, überprüfen Sie, ob der Knoten ordnungsgemäß eingerichtet wurde:

$ node -v

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

Wenn Sie spätere Versionen von Node.js (z. B. 4.x, 5.x usw.) möchten, können Sie die Knoten Quelle Yum Repository anstelle von EPEL.


63
2018-03-09 14:14



Dies funktionierte wunderbar auf meinem CentOS 6.4 System und gab mir Knoten und Npm. Ich habe Knoten 0.10.13, nur ein wenig von der neuesten src Tarball 0.10.15. Es scheint, dass dieser Bedarf mehr hervorstechen muss, um die Option "Installation von der Quelle" zu übertrumpfen. - Neek
Folgen diese EPEL Repo installieren. - Lee Chee Kiam
Aktualisieren Sie Epel Repository-Lauf aktivieren yum install -y epel-releaseDann kannst du node und npm mit yum installieren. - svassr
Ich konnte die Epel- oder Epel-Version nicht dazu bringen, mit yum für v4.2.x zu arbeiten. Die Antwort von nave.sh hat wunderbar funktioniert. - jcollum
Die Installation über yum gibt mir eine sehr alte Version v0.10.42 ... Wie kann ich Knoten über yum / rpm installieren, um die neueste Version (aktuell 5.9.0) zu erhalten? - dokaspar


Das Wesentliche "Installation von Node.js über den Paketmanager" enthält keine Anweisungen zum Installieren von Nodejs auf CentOS. Seit Fedora 18 wird nodejs Teil des Standard-Repo. ich versuche "eppel-fedora-nodejs" Repo, und finde es nicht mehr zu aktualisieren, die Version auf dem veralteten 0.6.0 verlassen.

Die gute Nachricht ist, dass wir es getan haben Kirchenschiff, eine virtuelle Umgebung für Knoten, 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 in die Übereinstimmung mit der neuesten dist-Struktur von nodejs ändern. 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 "


27
2017-10-25 09:12



nodejs.tchol.org ist jetzt tot - explunit
@explunit Ich aktualisiere nur die Antwort. Bitte versuchen Sie es. - user974312
FYI Scheint, es nur für diesen Benutzer zu installieren. Wenn Sie es für das gesamte System installieren möchten: ./nave.sh usemain <Ihre Version> - awl
"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 benutzt). - jcollum


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

13
2018-05-07 15:11



Sie sollten eine freigegebene Version und nicht die github-Version verwenden, es sei denn, Sie planen, zum Knotenprojekt beizutragen. - B T


[Bearbeiten] Danke David, dass du in den Kommentaren darauf hingewiesen hast, dass nodejs.tchol.org Die Seite zeigt nun auf eine Spam-Seite (sic!). Also diese Antwort funktioniert nicht mehr, benutze sie nicht!

Ich kann bestätigen, dass die Methode, die Chris in seiner Lösung erklärt hat, 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 müssen Sie root sein (oder sudo verwenden), um das zu installieren ..

Neben der Installation von der Quelle (was immer eine Option ist) gibt es vielleicht noch eine Alternative: hier lese ich das  "node.js wurde im Dezember 2012 in Fedora Rawhide aufgenommen und wird in Fedora 18 verfügbar sein."Vielleicht wird es irgendwann in die Standard-CentOS-Repositories gelangen

Ich schaue mir das an ..


11
2018-01-04 05:17



Das hat auf CentOS 6 wunderbar funktioniert. Danke! - KyleFarris
"nodejs.tchol.org" ist jetzt tot - David Newcomb
Daher sollten Sie nur von der Quelle installieren. Hab keine Angst. - John Hunt
@JohnHunt Die Installation von der Quelle bedeutet, dass Sie nicht mehr sauber deinstallieren können. Ich hatte das gleiche Problem mit Ruby. Glücklicherweise konnte ich einfach das VM-Image zurücksetzen. Die Installation von der Quelle aus bedeutet, dass Sie ein tiefgreifendes Verständnis des zu installierenden Pakets haben müssen. Wenn man bedenkt, dass es Tausende von Linux-Paketen gibt, ist dies keine Option! - Christian
"Der Link oben"? Die Antworten sind nach Abstimmungen sortiert, und Chris ist jetzt unter Ihrem. - Isaac Rabinovitch


Wie oben erwähnt, ist "tchol.org" nicht mehr da und lässt CentOS-Leute entweder die Nutzung eines Paketmanagers aufgeben oder zu einem anderen Betriebssystem wechseln. Ich habe einen Pakt mit mir selbst gegen jeden gemacht, der den ersteren (wieder) an alles außer experimentelle / dev-Kästen macht.

Glücklicherweise gibt es noch RPMs unter: http://patches.fedorapeople.org/oldnode/stable/el6/x86_64/

Ignoriere einfach die RPM für den Repo-Installer, der yum auf die nicht mehr existierende Seite verweist. Das sollte uns ein wenig Zeit kosten, 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.


10
2018-04-14 19:27



Ich würde sagen, dass die Version 0.6 in Ihrem Link schon ziemlich veraltet ist. Es scheint, dass es für RHEL / CentOS momentan wirklich keine guten Optionen gibt, was merkwürdig ist, wenn man bedenkt, dass Red Hat selbst bietet node.js PaaS an - explunit


Das hat bei 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

8
2018-02-18 19:51



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


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

Hier ist das Skript, das ich verwende:

# 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 wünschen (z. B. um in 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 auf CentOS 6.3 musste ich die folgenden Links hinzufügen, damit die Befehle node und npm entweder von regulären Benutzern oder von sudo aus ausgeführt wurden. Wird möglicherweise nicht benötigt, abhängig von Ihrer Version.

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

Offen 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 für das Kompilieren von der Quelle erwähnt.


7
2017-11-08 00:50