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ć.


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


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.


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”


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

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 ..


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ę.


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

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.


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

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.


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/


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.


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

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


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

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

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.


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.


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


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

Korzystając z naszej strony potwierdzasz, że przeczytałeś(-aś) i rozumiesz nasze zasady używania plików cookie i zasady ochrony prywatności.
Licensed under cc by-sa 3.0 with attribution required.