Mikhail Voronin

Установка Node.js и NPM в Ubuntu

     

 JavaScript  Linux  System Administration

Даже если вы не пишете сайты на Node.js, то вам, возможно, понадобятся Grunt, Gulp или ещё какой-нибудь пакет из npm. И Node.js все равно придется установить.
Можно просто установить Node.js из стандартного репозитория.
  1. # apt-get install nodejs
Но тогда установится старая версия, а хочется самую свежую.
Можно скачать прекомпилированный Node.js, но тогда вы не сможете указать директорию установки. Так что этот вариант тоже отметаем.
Итак, будем устанавливать Node.js из исходников. Для этого понадобится g++, python и ещё пара пакетов. У меня всё уже установлено, я часто устанавливаю ПО из исходников. Итак, скачавае исходные коды последней версии и распакуем.
  1. $ wget https://nodejs.org/dist/v13.0.1/node-v13.0.1.tar.gz
  2. $ tar -xzf node-v13.0.1.tar.gz
Далее, нужно подготовиться к компиляции, указать правильные пути для установки. Я всё, что компилирую из исходных кодов, ставлю в свою домашнюю директорию. Так мне удается поддерживать в чистоте мой дистрибутив Linux.
  1. $ cd node-v13.0.1
  2. $ ./configure --prefix=/home/$USER/$DESTINATION --dest-cpu=x64 --dest-os=linux
  3. $ make -j 4
  4. $ make install
Вместо $USER вы должны подставить имя пользователя, вместо $DESTINATION - директорию, в которую хотите установить Node.js. По умолчанию для установки используется директория /usr/local. Аргументы --dest-cpu и --dest-os передавать не обязательно, скрипт сам должен определить архитектуру.
Команда make install скопирует собранный Node.js в нужную директорию ($DESTINATION). И теперь надо обновить переменную окружения PATH. Для этого надо отредактировать файл ~/.profile. $DESTINATION вы должны заменить на название директории, $USER на своё имя пользователя.
  1. export PATH="$HOME/$USER/$DESTINATION/bin/:$PATH"
Можно, конечно, эту команду добавить в .bashrc и .bash_profile, но правильнее в .profile.
Теперь, я могу запустить новый терминал и пользоваться npm.
  1. $ npm install webpack webpack-cli --save-dev

Дополнительная информация

 JavaScript