Як встановити Node.JS на CentOS?


131

Я знайшов численні інструкції з установки Node.js, але всі вони здаються настільки складними - я не суперсистемний адміністратор, але можу обійтись. У мене є yum в системі, але я не знайшов жодного пакета node.js, і я не знаю, як скомпілювати код на сервері або куди його поставити.


Дякую за чудові відповіді всім. Я вірю, що ви можете встановити і nodejs, і npm зараз! awesome
qodeninja


... за допомогою EPEL (інструкції з установки, якщо у вас ще немає репо: rackspace.com/knowledge_center/article/… ).
geerlingguy

Я не думаю, що матеріали EPEL більше не працюють - або не працюють у Centos 7.
jcollum

Відповіді:


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

Зауважте, що для використання цього потрібен Python 2.6+ ./configure. Ви можете змінити файл "configure", щоб він вказав на python2.7рядок 1, якщо це необхідно.

Для створення пакету RPM ви можете використовувати 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

Тепер зробіть nodejsпакет:

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

Потім встановіть і перевірте версію:

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

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

Джерело: https://github.com/jordansissel/fpm/wiki/PackageMakeInstall


3
але це за умови, що я зробив встановлене правильно? що я не роблю?
qodeninja

9
Мені потрібно було включити yum install gcc-c ++
Yehosef

17
Незважаючи на те, що це технічно правильно, для будь-якого виду ремонту та репетируемості ВДАЛЬНО рекомендується керувати пакетами за допомогою RPM (або будь-якої упаковки вашого дистрибутива), а не вручну створювати та встановлювати з джерела на кожній машині, де це потрібно. Низка відповідей нижче посилається на попередньо створені пакети.
Джейсон Ентман

5
Намагання керувати Node.JS та будь-якою його екосистемою за допомогою RPM зараз є вправою, і я кажу це як людина, яка коротко запустила yum repo, що містить Node та ряд модульних пакетів.
jgoldschrafe

5
@IsaacRabinovitch Вони додали потрійну if, яка з'явилася до Python 2.5. Оскільки CentOS слідує шляху RHEL прив’язки системи Python до якоїсь спеціально виправленої версії 2.4, моє рішення полягало в тому, yum install python26 python26-develа потім виконувати python26 configureзамість цього ./configure. Потім, оскільки Makefileтакож виконує сценарії Python, я визначив PYTHONзмінну там, щоб бути python26замість python. Крім того, вам g++там знадобиться , тож якщо ви цього ще не зробили, вам слід yum install gcc-++.
Хенк Гей

64

Якщо у вас CentOS 6.x і увімкнено сховище EPEL , ви можете використовувати yum для встановлення вузла / npm:

$ sudo yum install npm

Після завершення інсталяції перевірте, чи правильно встановлено вузол:

$ node -v

(Слід повернути щось подібне v0.10.36).

Якщо ви хочете більш пізні версії Node.js (наприклад, 4.x, 5.x тощо), ви можете використовувати сховище Nodesource yum замість EPEL.


2
Це прекрасно працювало в моїй системі CentOS 6.4 і дало мені вузол і npm. Я отримав вузол 0.10.13, трохи відключивши останній серк тарбол 0.10.15. Здається, для цього потрібно більше звернути увагу, оскільки воно перешкоджає опції "встановити з джерела".
Neek

1
Дотримуйтесь цього, щоб встановити EPEL repo.
Лі Чі Кіам

1
для оновлення увімкнення запуску сховища epel yum install -y epel-release, тоді ви можете встановити вузол і npm з yum.
svassr

Мені не вдалося змусити epel або epel-release працювати з yum для v4.2.x. Відповідь nave.sh нижче спрацювала прекрасно.
jcollum

1
Установка через yum дає мені дуже стару версію v0.10.42 ... Як я можу встановити Node через yum / rpm, щоб отримати останню версію (наразі 5.9.0)?
докаспар

27

Суть "Встановлення Node.js через менеджер пакунків" більше не містить інструкцій щодо встановлення nodejs на CentOS. З Fedora 18, nodejs стає частиною стандартного репо. Я намагаюся виконати репортаж "epel-fedora-nodejs" , і вважаю, що він більше не оновлюється, залишаючи версію на застарілому 0.6.0.

Хороша новина полягає в тому, що у нас є нави , віртуальні середовища для Вузла, які допомагають нам.

https://github.com/isaacs/nave

Встановити nodejs зараз просто не просто.

$ 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

У файлі nave.sh вам, можливо, доведеться змінити локальні URL-адреси на відповідність останній структурі dist від nodejs. За 0.11.0 я змінив nave.sh, щоб мати таку URL-адресу

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


1
nodejs.tchol.org помер зараз
пояснюється

@explunit Я просто оновлю відповідь. Спробуйте спробувати
user974312

FYI Це, здається, встановлено лише для цього користувача. Якщо ви хочете встановити його для всієї системи: ./nave.sh usemain <ваша версія>
шило

"nodejs стає частиною стандартного репо" - у CentOS 7 це неймовірно застаріло. Встановлена ​​версія v10.x (у CentOS, який наш відділ ІТ так чи інакше використовує).
jcollum

13

Для 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
Ви повинні використовувати випущену версію, а не версію github, якщо ви не плануєте робити внесок у проект вузла.
BT

11

[Редагувати] Дякую, Девід, що вказав у коментарях нижче, що сайт nodejs.tchol.org зараз вказує на спам-сайт (sic!) .. Тому ця відповідь більше не працює, не використовуйте її!

Я можу підтвердити, що метод, який пояснив Кріс у своєму рішенні, працює в CentOS 5.4 (я це зробив хвилину тому :))

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: звичайно, ви повинні мати root (або використовувати sudo), щоб встановити це ..

Окрім встановлення з джерела (що завжди є варіантом), можливо, є ще альтернатива: тут я прочитав, що "node.js був прийнятий у Fedora Rawhide станом на грудень 2012 року і буде доступний у Fedora 18." , тому, можливо, він з часом потрапить у стандартні сховища CentOS

Я буду дивитись на це ..


3
Це прекрасно працювало на CentOS 6. Дякую!
KyleFarris

12
"nodejs.tchol.org" тепер мертвий
Девід Ньюкомб

2
Отже, вам слід просто встановити з джерела. Не бійтеся.
Джон Хант

2
@JohnHunt Встановлення з джерела означає, що ви більше не можете видалити його. У мене була така ж проблема з Рубі. На щастя, я міг просто відкатати зображення VM ... Якщо встановити з джерела, ви повинні глибоко розуміти пакет, який ви встановлюєте. Враховуючи, що є тисячі пакетів Linux, це не варіант!
Крістіан

1
"Посилання вище"? Відповіді сортуються за голосами, а Кріс тепер нижче вашого.
Ісаак Рабінович

10

Як зазначалося вище, "tchol.org" вже немає, люди CentOS переглядають або відмовляються від використання менеджера пакунків, або переходять на іншу ОС. Я уклав з собою пакт проти кожного, коли робив колишній (знову) на всіх, окрім експериментальних / розробників.

На щастя, rpms ще доступні за посиланням: http://patches.fedorapeople.org/oldnode/stable/el6/x86_64/

Просто ігноруйте обороти в хвилині для повторного встановлення, яке направляє yum до неіснуючого сайту. Це повинно придбати нам трохи часу, якщо / поки вони не стануть занадто застарілими.

Я буду тримати очі відкритими для нових репостів, і віддам повідомлення, якщо знайду їх.


Я б сказав, що версія 0.6 у вашому посиланні вже досить застаріла. Здається, зараз немає хороших варіантів RHEL / CentOS, що дивно, враховуючи, що Red Hat сам пропонує node.js PaaS
explunit

8

Це працювало для мене на 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
Мені доводиться використовувати python 2.6 на моєму CentOS 5.10, оскільки python 2.7 не знаходиться в репо.
ой,

7

Є ще один підхід, якого я не бачив у списку жодної з інших відповідей, і це використовувати двійкові дистрибутиви для Linux, які публікуються з 0.8.6

Ось сценарій, який я використовую:

# 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

Або, якщо ви хочете певної версії (наприклад, щоб залишитися на версії 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

А для мене на CentOS 6.3 мені довелося додати наступні посилання, щоб команди node та npm працювали або від звичайного користувача, або від sudo. Можливо, це не потрібно в залежності від вашої версії.

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

Відверто кажучи, ситуація з node.js на CentOS / RHEL є досить поганою, оскільки жоден репост не включає node.js (див. Відповідне питання тут ). Ця відповідь має ті ж недоліки, що і раніше, для збору з джерела.


7

Відповіді вище є застарілими

ЯК КОРІН

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

і ви закінчили.

підтвердьте свою установку за допомогою

node -v

Моїй версії curl не подобається орган, що підписує сертифікат SSL URL-адреси, і тому сценарій мовчки не працює. Ви можете пройти його за допомогою параметра curl -k.
Спайк Вільямс

Крім того, після додавання -k до вищевказаної команди curl, вам також потрібно оновити посилання на завантаження curl з цього домену в сценарії "setup", який завантажується. Потім запустіть цей скрипт вручну, використовуючи bash.
Спайк Вільямс

5

Ніхто не згадував, nvmщоб обробляти (кілька) безпечно та легко Установки вузла https://github.com/creationix/nvm ? Я вважаю це таким корисним.

Навіть корисно для створення вузла файлів реліз дерева і так користувальницьких пакетів оборотів в хвилину без сценаріїв занадто багато, latest-node, wget, ./configure, make, make installбла - бла.

nvm install 0.10.9

Завантажувати двійкові файли чи компілювати вихідний код відповідно до випуску.


чи встановлено офлайн?
amit patel

4

Запустити як root на RHEL, CentOS або Fedora, для Node.js v4 LTS Argon:

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

Як варіант для Node.js v5:

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

Як варіант для Node.js 0.10:

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

Потім встановіть як root:

yum -y install nodejs

джерело: https://nodejs.org/en/download/package-manager/


Єдина відповідь, яка працює для CentOS 7.2. І працювали так швидко і досконало.!
напишітьToBhuwan

рекомендація: відвідайте проект NVM на GitHub і отримайте остаточні вказівки від README: github.com/creationix/nvm#installation
Kay V

3

У мене є кілька прямолінійних інструкцій, а також файл .spec тут:

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

Ви збираєте це з джерела, тож вам потрібно буде забезпечити всі необхідні пакети для цього у вашій системі (gcc та друзі). Цей набір інструкцій призначений для створення RPM, тому якщо у вас відсутні будь-які необхідні пакети, rpmbuild дасть вам знати, які саме вам потрібно встановити спочатку.


1
Ласкаво просимо до помилки сервера! Хоча це теоретично може відповісти на питання, бажано було б сюди включити істотні частини відповіді та надати посилання для довідки.
user619714

Також посилання посилається на / usr / src / redhat, який, здається, не існує в моєму встановленні CentOS 5 (якщо я правильно розумію, це в / usr / local / src)
Kato

2
Останні зміни також вимагають від користувачів оновити встановлення Python (або конфігурація не працюватиме на будь-якому сервері CentOS, який все ще використовує Python 2.4). Подумайте, як оновити інформацію та розмістити її тут?
Тім Пост

3

Вам також знадобиться npm

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

не Емі більше це поставляється з вузлом.
ThomasReggi

3

Ви можете використовувати 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

Для Ubuntu це працювало для мене у версії 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

питання для CentOS
jcollum

2

ось мій Dockerfile, який встановив вузол v0.10.36 в 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

Моя відповідь за версію 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

Перейдіть у папку https://nodejs.org/dist/latest/, щоб знайти посилання для завантаження останньої версії.


Це врятувало мене на сервері CentOS під керуванням Plesk - збірка останньої версії (5) з джерела виходить з ладу, оскільки gcc застаріла. Я б оновив gcc, але зазвичай оновлення будь-чого вручну за допомогою yum перетворює Plesk у кричущу дитину.
кручений піксель

чи є дьоготь на 4.x стабільний? Відповідь буде кращою, якщо вона переживе кілька змін версії.
jcollum

Я відредагував свою відповідь, щоб включити посилання на останню папку розповсюдження, де можна знайти специфічну для встановлення дистрибутива.
Еван Сірокий

1

Нижче код досить добре працював на 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

Він більше не працює, http://nodejs.tchol.org більше не в мережі.


Це працювало раніше. Такої машини вже не існує.
rox0r

1

Я не дуже давно вирішив виконати цю установку на RHEL 5.8. На жаль, якщо nodejs.tchol.org переходить в офлайн, єдиний варіант - це створити його з джерела.

Однак процес збирання ускладнився, оскільки сценарій збирання включає код python, який не працює з типовою версією Python на RHEL. Після безлічі спроб і помилок (і багато гуглінгу) я знайшов цю статтю в блозі, яка в основному описує крок для кроку на виконання необхідних завдань.

а. Встановіть Python 2.6 b. Установіть цю версію python як альтернативну версію, а потім встановіть її як c за замовчуванням. налаштувати та встановити node.js d. Повернення Python до версії 2.4 за замовчуванням.

Ключовим моментом є те, що після цього слід повернутися до Python 2.4; інакше прості речі, такі як yum, не зможуть.

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


1

Після встановлення з використанням найвищої відповіді я не зміг встановити жодних глобальних модулів (-g) без дозволів Sudo. Оновлення NPM показало помилки. Нижче метод працював ідеально для мене, немає потреби в дозволах SU або SUDO.

Я встановив Node.js і NPM, використовуючи метод нижче ( https://gist.github.com/isaacs/579814 ), але змінив два рядки команд відповідно до поради з коментаря, опублікованого на цій сторінці deesejohn.

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

Перевірте встановлену версію за допомогою node -vтаnpm -v

Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.