береженого кольт бережет
береженого кольт бережет

Установка Node.js в CentOS 8

Node.js — это среда выполнения JavaScript для программирования на стороне сервера. Она позволяет разработчикам создавать масштабируемый серверный функционал с помощью JavaScript, языка, который многим уже знаком по веб-разработке под браузер.

В этом руководстве мы покажем вам три разных способа установки Node.js на сервер CentOS 8:

  • использование dnf для установки пакета nodejs из репозитория AppStream, используемого CentOS по умолчанию
  • установка nvm, Node Version Manager, и его использование для установки и управления несколькими версиями node
  • сборка и установка node из источника

Большинству пользователей следует использовать dnf для установки встроенных и предварительно упакованных версий Node. Если вы разработчик или вам по какой-либо другой причине нужно управлять несколькими установленными версиями Node, используйте nvm. Сборка из источника редко используется большинством пользователей.

Предварительные требования

Для выполнения этого обучающего руководства вам потребуется сервер под управлением CentOS 8. Мы будем считать, что вы выполнили вход на этот сервер в качестве non-root user с привилегиями sudo. Чтобы выполнить настройку сервера, воспользуйтесь нашим руководством по начальной настройке сервера CentOS 8.

Вариант 1 — Установка Node из репозитория AppStream CentOS

Node.js доступен в репозитории программного обеспечения AppStream, который по умолчанию используется в CentOS 8. Существует несколько доступных версий и вы можете выбирать между ними, активируя соответствующий поток модуля. В первую очередь просмотрите список доступных потоков для модуля nodejs с помощью команды dnf:

$ sudo dnf module list nodejs
Output

Name                     Stream                   Profiles                                                Summary
nodejs                   10 [d]                   common [d], development, minimal, s2i                   Javascript runtime
nodejs                   12                       common, development, minimal, s2i                       Javascript runtime

Доступны два потока, 10 и 12[d]​​​ указывает, что версия 10 — это поток по умолчанию. Если вы предпочитаете Node.js 12, переключитесь между потоками модуля:

$ sudo dnf module enable nodejs:12

Вам будет предложено подтвердить ваше решение. После этого поток версии 12 будет активирован, и мы сможем продолжить установку. Дополнительную информацию о работе с потоками модуля см. в официальной документации для AppStream CentOS.

Установите пакет nodejs с помощью dnf:

$ sudo dnf install nodejs

dnf снова предложит вам подтвердить это действие. Для этого нажмите y, а затем ENTER, чтобы выполнить установку программного обеспечения.

Проверьте, что установка выполнена успешно, запросив у node номер версии:

$ node --version
Output

v12.13.1

Вывод --version​​​ будет отличаться, если вы установили Node.js 10.

Примечание. Обе доступные версии Node.js — это релизы с долгосрочной поддержкой, т. е. у них гарантировано более длинное окно поддержки. Дополнительную информацию по жизненному циклу см. на официальной странице с информацией о релизах Node.js.

При установке пакета nodejs должна выполняться установка npm, утилиты Node Package Manager​​​, в качестве зависимости. Проверьте, что она была установлена корректно:

$ npm --version
Output

6.12.1

К настоящему моменту вы успешно установили Node.js и npm с помощью репозиториев программного обеспечения CentOS. В следующем разделе вы узнаете, как использовать для этого Node Version Manager.

Вариант 2 — Установка Node с помощью Node Version Manager

Еще одним способом установки Node.js, который является достаточно гибким, является использование nvm, или Node Version Manager. Это программное обеспечение позволяет устанавливать и поддерживать несколько разных независимых версий Node.js и связанных с ними пакетов Node.

Чтобы установить NVM на ваш сервер CentOS 8, откройте страницу проекта на GitHub. Скопируйте команду curl из файла README, отображаемого на главной странице. Она позволит получить самую последнюю версию скрипта установки.

Прежде чем передавать команду в bash, рекомендуется проверить скрипт, чтобы убедиться, что он не делает ничего, с чем вы не согласны. Вы можете сделать это, удалив сегмент | bash в конце команды curl:

$ curl -o- https://raw.githubusercontent.com/nvm-sh/nvm/v0.35.3/install.sh

Проверьте и убедитесь, что вы не возражаете против изменений, которые вносит скрипт. Если вас удовлетворит результат, запустите команду еще раз с добавлением | bash в конце. URL-адрес, который вы используете, будет меняться в зависимости от последней версии NVM, но в настоящий момент скрипт можно загрузить и запустить с помощью следующей команды:

$ curl -o- https://raw.githubusercontent.com/nvm-sh/nvm/v0.35.3/install.sh | bash

Она устанавливает скрипт nvm для вашей учетной записи. Для его использования необходимо сначала получить ваш файл .bash_profile:

source ~/.bash_profile

Теперь вы можете спросить у NVM, какие версии Node доступны:

$ nvm list-remote
. . .
       v12.13.0   (LTS: Erbium)
       v12.13.1   (LTS: Erbium)
       v12.14.0   (LTS: Erbium)
       v12.14.1   (LTS: Erbium)
       v12.15.0   (LTS: Erbium)
       v12.16.0   (LTS: Erbium)
       v12.16.1   (Latest LTS: Erbium)
        v13.0.0
        v13.0.1
        v13.1.0
        v13.2.0
        v13.3.0
        v13.4.0
        v13.5.0
        v13.6.0
        v13.7.0
        v13.8.0
        v13.9.0
       v13.10.0
       v13.10.1
       v13.11.0
       v13.12.0

Это очень длинный список! Вы можете установить версию Node, введя любую версию релиза, которую вы видите. Например, для получения версии 13.6.0 воспользуйтесь следующей командой:

$ nvm install v13.6.0

Вы можете увидеть установленные вами различные версии с помощью следующей команды:

$ nvm list
Output

->      v13.6.0
default -> v13.6.0
node -> stable (-> v13.6.0) (default)
stable -> 13.6 (-> v13.6.0) (default)

Она отображает текущую активную версию на первой строке (-> v13.6.0), за которой следуют псевдонимы и версии, на которые указывают эти псевдонимы.

Примечание: если у вас также имеется версия Node, установленная через репозитории программного обеспечения CentOS, вы можете увидеть здесь строку system -> v12.13.1​​​ (или другой номер версии). Вы всегда можете активировать системную версию Node с помощью nvm use system​​​.

Также вы увидите псевдонимы для различных релизов Node с длительной поддержкой (LTS):

Output

lts/* -> lts/erbium (-> N/A)
lts/argon -> v4.9.1 (-> N/A)
lts/boron -> v6.17.1 (-> N/A)
lts/carbon -> v8.17.0 (-> N/A)
lts/dubnium -> v10.19.0 (-> N/A)
lts/erbium -> v12.16.1 (-> N/A)

Мы можем установить релиз на основе этих псевдонимов. Например, для установки последней версии с долгосрочной поддержкой, erbium, запустите следующую команду:

$ nvm install lts/erbium
Output

Downloading and installing node v12.16.1...
. . .
Now using node v12.16.1 (npm v6.13.4)

Вы можете переключаться между установленными версиями с помощью nvm use:

$ nvm use v13.6.0
Now using node v13.6.0 (npm v6.13.4)

Вы можете проверить, что установка выполнена успешно, с помощью того же метода, использованного в других разделах. Введите следующую команду:

$ node --version
Output

v13.6.0

Корректная версия Node установлена на нашем компьютере, как мы и ожидали. Совместимая версия npm также доступна.

Вариант 3 — Установка Node из источника

Еще одним способом установки Node.js является загрузка исходного кода и его компиляция.

Воспользуйтесь вашим браузером и перейдите на официальную страницу загрузки Node.js, нажмите правой кнопкой на ссылке Исходный код и нажмите Скопировать адрес ссылки или похожий вариант в зависимости от браузера.

Вернитесь к вашему сеансу SSH, убедившись, что вы находитесь в директории, для которой у вас есть права на запись. Мы будем использовать домашнюю директорию текущего пользователя:

$ cd ~

Затем введите curl, вставьте ссылку, скопированную вами с сайта, и добавьте в конце | tar xz:

$ curl https://nodejs.org/dist/v12.16.1/node-v12.16.1.tar.gz | tar xz

Команда будет использовать утилиту curl для загрузки исходника, затем передавать его непосредственно в утилиту tar, которая будет извлекать его в текущую директорию.

Перейдите во вновь созданную директорию исходника:

$ cd node-v*

Существует несколько пакетов, которые нам нужно загрузить из репозиториев CentOS для компиляции кода. Используйте dnf для их установки:

$ sudo dnf install gcc-c++ make python2

Вам будет предложено подтвердить установку. Введите y, а затем ENTER, чтобы сделать это. Теперь мы можем настроить и скомпилировать программное обеспечение:

$ ./configure
$ make -j4

Компиляция может занимать определенное время (около 30 минут для четырехъядерного сервера). Мы использовали опцию -j4 для запуска четырех параллельных процессов компиляции. Вы можете пропустить эту опцию или обновить число исходя из количества доступных ядер процессора.

После завершения компиляции вы можете установить программное обеспечение в вашей системе с помощью следующей команды:

$ sudo make install

Чтобы проверить, что установка выполнена успешно, попросите Node отобразить номер версии:

$ node --version
v12.16.1

Если вы увидите правильный номер версии, установка была выполнена успешно. По умолчанию Node также устанавливает совместимую версию npm, поэтому она также должна быть доступна.