Jak zainstalować Node.JS na CentOS?

131

Znalazłem wiele instrukcji instalacji dla Node.js, ale wszystkie wydają się tak skomplikowane - nie jestem super administratorem systemu, ale mogę się obejść. Mam yum w systemie, ale nie znalazłem żadnych pakietów node.js i nie jestem pewien, jak skompilować kod na serwerze ani gdzie go umieścić.

qodeninja
źródło
Dzięki za wspaniałe odpowiedzi dla wszystkich. Wierzę, że możesz teraz zainstalować zarówno nodejs, jak i npm! niesamowite
qodeninja
... z EPEL (instrukcje instalacji, jeśli jeszcze nie masz repozytorium: rackspace.com/knowledge_center/article/… ).
geerlingguy
Nie sądzę, żeby rzeczy z EPEL już działały - lub nie działają w
Centos

Odpowiedzi:

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

Zauważ, że wymaga to używania Python 2.6+ ./configurepowyżej. W python2.7razie potrzeby możesz zmodyfikować plik „config”, aby wskazywał w linii 1.

Aby utworzyć pakiet RPM, możesz użyć 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

Teraz utwórz nodejspakiet:

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

Następnie zainstaluj i sprawdź wersję:

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

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

Źródło: https://github.com/jordansissel/fpm/wiki/PackageMakeInstall

kwanty
źródło
3
ale to przy założeniu, że zainstalowałem poprawnie? jakiego nie wiem?
qodeninja,
9
Musiałem dołączyć yum install gcc-c ++
Yehosef
17
Chociaż jest to technicznie poprawne, dla dowolnego rodzaju konserwacji lub powtarzalności, WYSOKIE zalecane jest zarządzanie pakietami przez RPM (lub cokolwiek to jest opakowanie twojej dystrybucji) zamiast ręcznego budowania i instalowania ze źródła na każdej maszynie, gdzie jest to potrzebne. Kilka odpowiedzi poniżej prowadzi do gotowych pakietów.
Jason Antman
5
Próba zarządzania Node.JS i dowolnym z jego ekosystemów za pomocą RPM jest obecnie ćwiczeniem daremnym i mówię to jako ktoś, kto krótko uruchomił repozytorium yum zawierające Node i kilka pakietów modułów.
jgoldschrafe
5
@IsaacRabinovitch Dodali trójskładnik if, który pojawił się dopiero w Pythonie 2.5. Ponieważ CentOS podąża ścieżką RHEL związania systemowego Pythona z jakąś niestandardową łatką w wersji 2.4, moim rozwiązaniem było, yum install python26 python26-devela następnie wykonanie python26 configurezamiast ./configure. Następnie, ponieważ Makefilewykonuje również skrypty Pythona, zdefiniowałem tam PYTHONzmienną, która ma być python26zamiast python. Będziesz też potrzebować g++, więc jeśli jeszcze tego nie zrobiłeś, powinieneś yum install gcc-++.
Hank Gay
64

Jeśli masz CentOS 6.x i włączyłeś repozytorium EPEL , możesz użyć yum do zainstalowania node / npm:

$ sudo yum install npm

Po zakończeniu instalacji sprawdź, czy węzeł jest poprawnie skonfigurowany:

$ node -v

(Powinien zwrócić coś takiego v0.10.36).

Jeśli chcesz późniejszych wersji Node.js (np. 4.x, 5.x itp.), Możesz użyć repozytorium yum Nodesource zamiast EPEL.

geerlingguy
źródło
2
To działało pięknie na moim systemie CentOS 6.4 i dało mi węzeł i npm. Mam węzeł 0.10.13, tylko trochę od najnowszego src tarball 0.10.15. Wygląda na to, że potrzeba więcej głosowania, aby się wyróżnić, ponieważ przebija opcję „zainstaluj ze źródła”.
Neek
1
Postępuj zgodnie z tym, aby zainstalować repozytorium EPEL.
Lee Chee Kiam
1
aby zaktualizować włączyć uruchamianie repozytorium epel yum install -y epel-release, wtedy możesz zainstalować węzeł i npm z yum.
svassr
Nie mogłem sprawić, aby epel lub wydanie epel działało z yumem w wersji 4.2.x. Poniższa odpowiedź nave.sh działała pięknie.
jcollum
1
Instalacja przez yum daje mi bardzo starą wersję v0.10.42 ... Jak mogę zainstalować Node przez yum / rpm, aby uzyskać najnowszą wersję (obecnie 5.9.0)?
dokaspar
27

Gist „Instalowanie Node.js za pomocą menedżera pakietów” NIE zawiera już instrukcji instalowania nodejs na CentOS. Od Fedory 18 nodejs staje się częścią standardowego repo. Próbuję repozytorium „epel-fedora-nodejs” i okazuje się, że nie jest już aktualizowany, pozostawiając wersję nieaktualną 0.6.0.

Dobra wiadomość jest taka, że ​​mamy nave , wirtualne środowiska dla węzła, które nam pomogą.

https://github.com/isaacs/nave

Instalacja nodejs jest teraz bardzo łatwa.

$ 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

W pliku nave.sh może zaistnieć potrzeba zmiany lokalnych adresów URL na zgodne z najnowszą strukturą dist nodejs. W wersji 0.11.0 zmieniłem nave.sh, aby mieć następujący adres URL

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

użytkownik974312
źródło
1
nodejs.tchol.org już nie żyje
wyjaśnij
@explunit Właśnie zaktualizowałem odpowiedź. Proszę spróbować nave.
user974312,
FYI To wydaje się instalować tylko dla tego użytkownika. Jeśli chcesz zainstalować go dla całego systemu: ./nave.sh usemain <twoja wersja>
szydło
„nodejs staje się częścią standardowego repozytorium” - w CentOS 7 jest niesamowicie przestarzały. Zainstalowana wersja to 10.x (na CentOS, z którego korzysta nasz dział IT).
jcollum
13

Dla 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
Jason Royle
źródło
2
Powinieneś używać wydanej wersji, a nie wersji github, chyba że planujesz przyczynić się do projektu węzła.
BT
11

[Edytuj] Dziękuję Davidowi za zwrócenie uwagi w poniższych komentarzach, że strona nodejs.tchol.org wskazuje teraz na stronę ze spamem (sic!) .. Więc ta odpowiedź już nie działa, nie używaj jej!

Mogę potwierdzić, że metoda, którą Chris wyjaśnił w swoim rozwiązaniu, działa w CentOS 5.4 (zrobiłem to przed chwilą :))

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: oczywiście musisz być rootem (lub używać sudo), aby zainstalować to ..

Poza instalowaniem ze źródła (co zawsze jest opcją) może istnieje jeszcze alternatywa: tutaj czytam, że „node.js został przyjęty do Fedory Rawhide od grudnia 2012 roku i będzie dostępny w Fedorze 18.” , więc może ostatecznie trafi do standardowych repozytoriów CentOS

Popatrzę na to ..

Łukasz
źródło
3
Działa to pięknie na CentOS 6. Dzięki!
KyleFarris
12
„nodejs.tchol.org” jest teraz martwy
David Newcomb,
2
Dlatego powinieneś po prostu zainstalować ze źródła. Nie bój się
John Hunt
2
@JohnHunt Instalowanie ze źródła oznacza, że ​​nie można już całkowicie odinstalować. Miałem ten sam problem z Ruby. Na szczęście mogłem po prostu przywrócić obraz maszyny wirtualnej ... Instalacja ze źródła oznacza, że ​​musisz dokładnie zrozumieć pakiet, który instalujesz. Biorąc pod uwagę, że istnieją tysiące pakietów linuksowych, nie jest to opcja!
Christian
1
„Link powyżej”? Odpowiedzi są sortowane według głosowania, a Chris jest teraz poniżej twojego.
Isaac Rabinovitch
10

Jak wspomniano powyżej, „tchol.org” zniknął, pozostawiając ludzi CentOS patrzących na rezygnację z korzystania z menedżera pakietów lub przejście na inny system operacyjny. Zawarłem ze sobą pakt przeciwko każdemu zrobieniu tego pierwszego (ponownie) na wszystkich urządzeniach poza eksperymentalnymi / programistycznymi.

Na szczęście wciąż są dostępne rpms pod adresem : http://patches.fedorapeople.org/oldnode/stable/el6/x86_64/

Zignoruj ​​rpm dla repo-instalatora, który przekieruje yum na niedziałającą stronę. To powinno dać nam trochę czasu, chyba że / dopóki nie staną się zbyt przestarzałe.

Będę mieć oczy otwarte na nowsze repozytorium i wrócę, jeśli je znajdę.

JosephK
źródło
Powiedziałbym, że wersja 0.6 w twoim linku jest już dość przestarzała. Wygląda na to, że obecnie nie ma naprawdę dobrych opcji dla RHEL / CentOS, co jest dziwne, biorąc pod uwagę, że sam Red Hat oferuje PaaS
node.js
8

To działało dla mnie w CentOS 5.7:

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
Będzie
źródło
3
Muszę używać Pythona 2.6 na moim CentOS 5.10, ponieważ Python 2.7 nie jest w repozytorium.
ohho,
7

Jest jeszcze jedno podejście, którego nie widziałem w żadnej z pozostałych odpowiedzi, a mianowicie wykorzystanie dystrybucji binarnych dla Linuksa, które zostały opublikowane od wersji 0.8.6

Oto skrypt, którego używam:

# 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

Lub, jeśli chcesz konkretną wersję (np. Pozostanie w serii 0.8):

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

A dla mnie w CentOS 6.3 musiałem dodać następujące linki, aby polecenia węzła i npm działały zarówno od zwykłego użytkownika, jak i sudo. W zależności od wersji może nie być potrzebny.

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

Szczerze mówiąc, sytuacja dla node.js na CentOS / RHEL jest raczej zła, ponieważ żadne z repozytoriów nie zawiera node.js (patrz powiązane pytanie tutaj ). Ta odpowiedź ma te same wady, co wcześniej wspomniane przy kompilacji ze źródła.

ekspunit
źródło
7

Odpowiedzi powyżej są nieaktualne

JAK ROOT

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

i gotowe.

zweryfikuj swoją instalację za pomocą

node -v
josh123a123
źródło
Moja wersja curl nie wydaje się podobać organowi podpisującemu certyfikat SSL adresu URL, więc skrypt nie działa cicho. Możesz go ominąć, używając opcji curl -k.
Spike Williams
Ponadto po dodaniu opcji -k do powyższego polecenia curl należy również zaktualizować odwołanie do pobierania curl z tej domeny w pobieranym skrypcie „setup”. Następnie uruchom ten skrypt ręcznie, używając bash.
Spike Williams
5

Nikt nie wspominał nvmo bezpiecznej i łatwej obsłudze (wielu) instalacji węzłów https://github.com/creationix/nvm ? Uważam to za bardzo przydatne.

Nawet przydatne do budowy węzła plików Wydania drzewo i tak niestandardowe pakiety RPM bez skryptów zbyt wiele, latest-node, wget, ./configure, make, make installbla bla.

nvm install 0.10.9

Pobierze pliki binarne lub skompiluje kod źródłowy zgodnie z wydaniem.

fsoppelsa
źródło
czy jest instalacja offline?
amit patel
4

Uruchom jako root na RHEL, CentOS lub Fedora, dla Node.js v4 LTS Argon:

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

Alternatywnie dla Node.js v5:

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

Alternatywnie dla Node.js 0.10:

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

Następnie zainstaluj jako root:

yum -y install nodejs

źródło: https://nodejs.org/en/download/package-manager/

itzhar
źródło
Jedyna odpowiedź, która działa dla CentOS 7.2. I działał tak szybko i idealnie.!
writeToBhuwan
zalecenie: odwiedź projekt NVM na GitHub i uzyskaj ostateczne instrukcje z README: github.com/creationix/nvm#installation
Kay V
3

Mam tutaj całkiem proste instrukcje wraz z plikiem .spec tutaj:

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

Będziesz kompilował to ze źródła, więc musisz upewnić się, że masz wszystkie niezbędne pakiety do zrobienia tego w twoim systemie (gcc i przyjaciele). Ten zestaw instrukcji służy do budowania RPM, więc jeśli brakuje Ci wymaganych pakietów, rpmbuild poinformuje Cię, które z nich musisz zainstalować jako pierwsze.

Chris
źródło
1
Witaj w Server Fault! Chociaż teoretycznie może to odpowiedzieć na pytanie, lepiej byłoby zawrzeć tutaj istotne części odpowiedzi i podać odnośnik.
user619714,
Link odnosi się również do / usr / src / redhat, który wydaje się nie istnieć w mojej instalacji CentOS 5 (jest to / usr / local / src, jeśli dobrze rozumiem)
Kato,
2
Ostatnie zmiany wymagałyby także od ludzi aktualizacji instalacji Pythona (lub konfiguracja nie będzie działać na żadnym serwerze CentOS nadal używającym Pythona 2.4). Zastanów się nad odświeżeniem informacji i umieszczeniem ich tutaj?
Tim Post
3

Będziesz także potrzebował npm

git clone https://github.com/isaacs/npm.git
cd npm
sudo make install
Dom na plaży
źródło
nie więcej, chodzi o węzeł.
ThomasReggi,
3

Możesz użyć nodebrew . $ 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

aomoriringo
źródło
2

W przypadku Ubuntu działało to dla mnie w wersji 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
Michael Durrant
źródło
pytanie dotyczy CentOS
jcollum
2

oto mój plik Docker, który zainstalował węzeł v0.10.36 w centOS 7

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
Dinis Cruz
źródło
2

Moja odpowiedź na wersję 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

Sprawdź w folderze https://nodejs.org/dist/latest/, aby znaleźć link do pobrania najnowszej wersji.

Evan Siroky
źródło
To uratowało mnie na serwerze CentOS z uruchomionym Plesk - budowanie najnowszej wersji (5) ze źródła kończy się niepowodzeniem, ponieważ gcc jest tak nieaktualne. Aktualizowałbym gcc, ale zwykle aktualizowanie czegokolwiek ręcznie przez yum zamienia Pleska w krzyczące dziecko.
twistedpixel
czy istnieje tar dla stabilizacji 4.x? Odpowiedź będzie lepsza, jeśli przetrwa kilka zmian wersji.
jcollum
Zredagowałem swoją odpowiedź, aby dołączyć link do najnowszego folderu dystrybucyjnego, w którym można znaleźć instalację specyficzną dla dystrybucji.
Evan Siroky,
1

Poniższy kod działał całkiem nieźle na CentOS 6

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

To już nie działa, http://nodejs.tchol.org nie jest już online.

PaVan G Jakati
źródło
Kiedyś działało. Ta maszyna już nie istnieje.
rox0r
1

Niedawno podjąłem się zadania samodzielnego wykonania tej instalacji na RHEL 5.8. Niestety, gdy nodejs.tchol.org przechodzi w tryb offline, jedyną opcją jest zbudowanie go ze źródła.

Jednak proces kompilacji stał się dość skomplikowany, ponieważ skrypt kompilacji obejmuje kod Pythona, który nie działa z domyślną wersją Pythona na RHEL. Po wielu próbach i błędach (i wielu googlowaniu) znalazłem ten post na blogu, który w zasadzie opisuje krok po kroku w sprawie następujących wymaganych zadań.

za. Zainstaluj Python 2.6 b. Skonfiguruj tę wersję Pythona jako wersję alternatywną, a następnie ustaw ją jako domyślną c. skonfiguruj i zainstaluj node.js d. Przełączanie Pythona z powrotem do domyślnej wersji 2.4.

Kluczem jest to, że powinieneś powrócić do Python 2.4; w przeciwnym razie proste rzeczy, takie jak mniam, zawiodą.

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

Victor Chan
źródło
1

Po instalacji przy użyciu najwyżej ocenianej odpowiedzi nie byłem w stanie zainstalować żadnych globalnych modułów (-g) bez uprawnień Sudo. Aktualizacja NPM pokazała błędy. Poniższa metoda działała idealnie dla mnie, nie ma potrzeby uprawnień SU ani SUDO.

Zainstalowałem Node.js i NPM przy użyciu poniższej metody zaczerpniętej z ( https://gist.github.com/isaacs/579814 ), ale zmodyfikowałem dwa wiersze poleceń zgodnie z zaleceniami z komentarza opublikowanego przez deesejohn na tej stronie.

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

Sprawdź zainstalowaną wersję za pomocą node -vinpm -v

Vijay Rajasekaran
źródło