Как установить Node.JS в CentOS?


131

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


Спасибо всем за отличные ответы. Я верю, что теперь вы можете установить как nodejs, так и npm! удивительный
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
но это при условии, что я установил make правильно? что я не знаю?
qodeninja

9
Мне нужно было включить yum install gcc-c ++
Yehosef

17
Хотя это технически правильно, для любого вида ремонтопригодности или повторяемости НАСТОЯТЕЛЬНО рекомендуется управлять пакетами через RPM (или независимо от того, какой пакет у вашего дистрибутива), а не собирать и устанавливать вручную из исходного кода на каждом компьютере, где это необходимо. Ряд ответов ниже ссылается на готовые пакеты.
Джейсон Антман

5
Попытка управлять Node.JS и любой его экосистемой с помощью RPM прямо сейчас - бесполезное занятие, и я говорю это как человек, который кратко управлял репозиторием yum, содержащим 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, чуть-чуть от последнего src tarball 0.10.15. Похоже, что нужно выделять больше, чтобы выделиться, поскольку это превосходит опцию «установить из источника».
Neek

1
Следуйте этому, чтобы установить репозиторий EPEL.
Ли Чи Киам

1
чтобы обновить включить запуск репозитория epel yum install -y epel-release, вы можете установить node и npm с помощью yum.
svassr

Я не мог заставить epel или epel-release работать с yum для v4.2.x. Ответ nave.sh ниже работал прекрасно.
16:10

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.

Хорошей новостью является то, что у нас есть неф , Виртуальные среды для Node, чтобы помочь нам.

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

К вашему сведению, это, кажется, установить его только для этого пользователя. Если вы хотите установить его для всей системы: ./nave.sh usemain <ваша версия>
шило

«nodejs становится частью стандартного репо» - в CentOS 7 он невероятно устарел. Установленная версия v10.x (в CentOS, которую наш ИТ-отдел использует в любом случае).
16:12

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 Установка из исходного кода означает, что вы больше не можете удалить его. У меня была такая же проблема с Руби. К счастью, я мог просто откатить образ виртуальной машины ... Установка из исходного кода означает, что вам нужно иметь глубокое понимание устанавливаемого пакета. Учитывая, что есть тысячи пакетов Linux, это не вариант!
Кристиан

1
"Ссылка выше"? Ответы отсортированы по голосованию, и Крис теперь ниже вашего.
Исаак Рабинович

10

Как отмечалось выше, «tchol.org» больше не осталось, и люди из CentOS решили либо отказаться от использования менеджера пакетов, либо перейти на другую ОС. Я заключил с собой договор против того, чтобы каждый делал (опять же) все, кроме экспериментальных / dev-боксов.

К счастью, по-прежнему доступны rpms по адресу: http://patches.fedorapeople.org/oldnode/stable/el6/x86_64/

Просто игнорируйте rpm для установщика репозитория, который направляет 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чтобы безопасно и легко обрабатывать (несколько) узлов Node https://github.com/creationix/nvm ? Я нахожу это таким полезным.

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

nvm install 0.10.9

Будет загружать двоичные файлы или компилировать исходный код в соответствии с выпуском.


есть ли автономная установка?
Амит Патель

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
Добро пожаловать в сбой сервера! Хотя это может теоретически ответить на вопрос, было бы предпочтительным включить здесь основные части ответа и предоставить ссылку для справки.
user9517 14.11.11

Кроме того, ссылка ссылается на / usr / src / redhat, который, кажется, не существует в моей установке CentOS 5 (он находится в / usr / local / src, если я правильно понимаю)
Kato

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


3

Вы можете использовать нодбрю . $ 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 в кричащего ребенка.
Twistedpixel

есть ли tar для 4.x стабильной? Ответ будет лучше, если он переживет несколько изменений версии.
16:34

Я отредактировал свой ответ, добавив ссылку на последнюю дистрибутивную папку, где вы можете найти дистрибутив для конкретной установки.
Эван Сироки

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 б. Установите эту версию 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.