w4r_dr1v3r
@w4r_dr1v3r
начинающий

Как правильно установить NodeJS на сервер Убунту 14.04.03 LTS?

Вместо эпиграфа:

Эта заметка-шпаргалка по грамотной установке NodeJS на сервер для людей, которые как и я практически ничего не понимают не только в программировании, но и в Линуксе как таковом. Но мы постараемся свести ваше общение к Линуксу к тыканию буквально по одной единственной кнопочке, по крайней мере пока вы не освоитесь.
Составляется с использованием ответов не только сообщества Тостера, но и Линукс-сообщества в целом, Гугла и личной практики.
В частности, мне помогали: lem_prod, Антон Уланов, inf (список будет расширяться по мере работы над шпаргалкой)

Текущая версия шпаргалки: (v. 0.0.9)


Как человек, только начинающий изучать nodejs и довольно поверхностно знакомый с Линуксом, я, в частности, не нашёл НИ ОДНОГО упоминания о том как пошагово и доступно установить NodeJS на сервер c Убунту 14.04.03 LTS.

Краткий список вопросов, с которыми я столкнулся и по части которых в настоящее время остервенело провожу раскопки:

В: Можно ли создавать папку проекта в отдельной папке в линукс?
О: Да. В целом, как я понял - даже желательно.

В: Нужно ли (при наличии в системе питона 2.7 к примеру) ставить для ноды apt-get install python-software-properties?
О: Нет, в случае применения текущей шпаргалки.

В:Нужно ли делать apt-get install npmесли считается что он УЖЕ включён в Nodejs?
О: Нет, по этой шпаргалке вы получаете пятую версию Ноды, в состав которой npm уже включён.

В: Почему при попытке поставить apt-get install expressсистема говорит мне что ей нужен apt-get install node-expressи одно ли это и то же, что и expressjs?
О:

В: В какие КОНКРЕТНО папки падает сама нода и её модули? Необходимо ли определять им конкретный путь установки относительно места которое заготовлено под проект (очевидно что делать проект в папке с самой нодой не стоит, тут опустим хотя бы часть КЭПовства)?
О:

В: Необходимо ли В КАЖДОЙ папке (например при наличия в папке myapp создаётся папка для раздельного chat), находясь в ней говорить консоли npm install --save?
О:

Эти, и ещё огромное количество вопросов встают перед начинающими. Да, большинство будет задавать ещё большую кучу вопросов. Например -
"зачем вам разворачивать проект сразу на сервере в сети? Не проще ли все делать на компе?"

Давайте вынесем это за рамки моего вопроса. Потому что, во-первых - нет, мне так не проще. Во вторых - давайте предположим что это (к примеру) - некоторый факультатив. В-третьих - в Ноде для того и описаны директивы NODE_ENV с параметрами продакшен и разработка, чтобы это всё было возможно, не так ли? И хоть примеров работы с Нодой в локали и на серверах описано немало - конкретики технического толка в них критично мало.

Я прошу сообщество по возможности ответить на мои (быть может смешные или наивные в чём-то) вопросы, из которых я мог бы собрать гайд для такого вот факультатива по правильному развёртыванию node.js на боевом сервере для новичков, тем более что таких примеров я не нашел нигде в сети. Так почему бы не собрать ещё один, с неожиданным подходом к установке этого замечательного сервера?

параметры проекта:
- WDS сервер от %%известный_хостинг_нейм%%, обойдёмся без рекламы
- процессор одноядерный, с частотой в 1ГГц
- 512 оперативки
- 10Гб места.
Для начала - самое оно.

Но начнём, пожалуй:
0/ useradd vasya //Условимся с вами о том, что все дальнейшие операции мы выполняем от лица простого юзера Васи Пупкина, которого создадим от лица рута.
1/ sudo apt-get update // Так вы обновите списки источников обновок для сервера.
2/ sudo apt-get ugrade // Обновим же сервер!
3/ sudo apt-get install htop // Oчень удобно видеть процессы, расход памяти и так далее. пишем в консоли htop и пользуемся.
4/ sudo apt-get install mc // Весьма удобный файловик. Хотим попользоваться - пишем в консоли mc.
5/
curl -sL https://deb.nodesource.com/setup_5.x | sudo -E bash -

// Ставим NodeJS версии 5.х
6/ apt-get install -y nodejs --save
//npm ВКЛЮЧЁН В ПАКЕТ С НОДОЙ, ставить его отдельно теперь не нужно.
7/ npm install -g supervisor --save // Установим модуль отслеживающий изменения в файлах и папках вашего проекта.
8/ npm install -g forever --save // Установим модуль позволяющий создавать/(пере)запускать главный файл (к примеру - тот же app.js)
9/ npm install -g express-generator --save // Установим шаблонизатор, разворачивающий проект с первичными папками.
10/
11/

Флаги:
*--save: записывает устанавливаемый модуль в файл package.json в котором хранится описание проекта и его зависимости (штука действительно полезная) Черты у флага команды две, это не опечатка.
**-g: устанавливает глобально для всей операционной системы.
***-y>: является сокращением флага "yes".

...продолжение следует. Хотите помочь? Присоединяйтесь! ;))
  • Вопрос задан
  • 5334 просмотра
Решения вопроса 2
@lem_prod
- можно ли создавать папку проекта в отдельной папке в линукс?
конечно, переменная node глобальна
- нужно ли (при наличии в системе питона 2.7 к примеру) ставить для ноды apt-get install python-software-properties
не в курсе, а собственно зачем?
- нужно ли ставить apt-get install npm если считается что он УЖЕ включён в nodejs
нет
- почему при попытке поставить apt-get install express система говорит мне что ей нужен apt-get install node-express и одно ли это и то же, что и expressjs
express ставится через npm: sudo npm install -g express
- в какие КОНКРЕТНО папки падает сама нода и её модули? Необходимо ли определять им конкретный путь установки относительно места которое заготовлено под проект (очевидно что делать проект в папке с самой нодой не стоит, тут опустим хотя бы часть КЭПовства)
не помню, сейчас под виндой сижу, не скажу, но по сути это не важно, посмотри первые выпуски скринкаста Кантора по ноде, он хорошо объясняет как ищется модули и как организовывать структуру
Ответ написан
inf
@inf
DevOps Engineer
В официальных доках написано как ставить ноду . Собственно уже писали выше:
curl -sL https://deb.nodesource.com/setup_5.x | sudo -E bash -
sudo apt-get install -y nodejs

NPM ставится прицепом. Express и остальные модули ставятся уже через npm: sudo npm -g install express

Где размещать проект в целом без разницы. Можно хоть в /home/user. Делаешь в папке npm init отвечаешь на несколько несложных вопросов и начало проекта положено. Потом в зависимости в package.json прописываешь всё что хочешь.
- в какие КОНКРЕТНО папки падает сама нода и её модули? Необходимо ли определять им конкретный путь установки относительно места которое заготовлено под проект (очевидно что делать проект в папке с самой нодой не стоит, тут опустим хотя бы часть КЭПовства)

Сама нода без разницы где стоит.
- необходимо ли В КАЖДОЙ папке (например при наличия в папке myapp создаётся папка для раздельного chat), находясь в ней говорить консоли npm install --save?

Не надо. В корне проекта будет лежать node_modules через require можно подсасывать хоть куда.
Ответ написан
Пригласить эксперта
Ответы на вопрос 2
@antonsr98
Системный Администратор
я ставил достаточно просто
curl -sL https://deb.nodesource.com/setup_5.x | sudo -E bash -
sudo apt-get install -y nodejs

затем ставил express-generator через npm i -g express-generator (-g это глобальная установка)
каталоги проектов создаются через express там где вам удобно.

по поводу npm install module_name --save это команда записывает устанавливаемый модуль в файл package.json в котором хранится описание проекта и его зависимости (штука полезная)
Ответ написан
AirWorker
@AirWorker
Node.js full stack web dev
я в данный момент предпочитаю забить на apt и ставить из сырцов. Инерция Ноды и Дебиана - это вообще разного уровня вещи.

$ cd /usr/local/src
$ wget http://nodejs.org/dist/v5.7.0/node-v5.7.0.tar.gz # <= latest version here
$ tar -xvzf node-v5.7.0.tar.gz
$ cd node-v5.7.0
$ ./configure
$ make
$ sudo make install
$ which node
$ node -v
Ответ написан
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Войти через центр авторизации
Похожие вопросы