Гид по технологиям

Установка MEAN.JS на Ubuntu 15.04

• 6 min read • Разработка • Обновлено 22 Nov 2025
Установка MEAN.JS на Ubuntu 15.04
Установка MEAN.JS на Ubuntu 15.04

Краткое руководство по установке MEAN.JS (MongoDB, Express, AngularJS, Node.js) на Ubuntu 15.04: обновите репозитории, установите MongoDB из репозитория Ubuntu, установите Node.js через nodesource (в примере — 5.x), затем глобально установите bower, gulp и mean-cli. Создайте проект mean init, выполните npm install и запустите приложение через gulp или node server.

Введение

MEAN.JS — это полный JavaScript-стэк, объединяющий MongoDB, Express, AngularJS и Node.js. Он ускоряет разработку веб-приложений, позволяя писать серверную и клиентскую логику на JavaScript. В этом руководстве показано, как установить MEAN.JS на Ubuntu 15.04 (пример из исходного материала). Для современных развёртываний рекомендуется рассматривать актуальные LTS-релизы Ubuntu и поддерживаемые версии Node.js.

Что вам нужно

  • Ubuntu 15.04 — 64-bit (в исходном примере). Для реальных проектов лучше использовать поддерживаемую LTS-версию Ubuntu.
  • Права root или sudo.
  • Нормальная (не root) учётная запись для создания проекта MEAN.JS.

Шаг 1 — Обновите репозитории Ubuntu

Подключитесь к серверу по SSH, получите права root/sudo и обновите список пакетов:

sudo su  
apt-get update

Важно

Если вы используете VPS или контейнер, убедитесь, что у вас корректно настроен сетевой доступ к репозиториям и что system clock синхронизирован — это влияет на HTTPS-запросы к внешним источникам.

Шаг 2 — Установите MongoDB

В примере MongoDB устанавливается из репозитория Ubuntu (в исходном материале доступна версия 2.xx). Если вам нужна более свежая версия, установите её из официального репозитория MongoDB.

Установка MongoDB:

apt-get install mongodb -y

Проверьте версию и слушающие порты:

mongo --version  
netstat -plntu | grep mongo  
mongo

Проверка версии MongoDB в терминале

Примечание

По умолчанию MongoDB слушает порт 27017. Если вы используете брандмауэр (ufw, iptables), откройте только необходимые порты и ограничьте доступ по IP.

Шаг 3 — Установите Node.js и npm

В репозиториях Ubuntu может быть устаревшая версия Node.js. В примере используется nodesource-скрипт для установки Node.js 5.x. В реальных проектах выбирайте текущую LTS-ветку Node.js.

Установите curl и скачайте установочный скрипт nodesource:

apt-get install curl -y  
curl -sL https://deb.nodesource.com/setup_5.x | sudo bash -

Затем установите Node.js и npm:

apt-get install nodejs -y

Проверьте версии:

nodejs --version  
v5.2.0
npm --version  
3.3.12

Node.js и npm установлены.

Важно

Если вы используете nvm (Node Version Manager), управление версиями будет гибче и безопаснее для разработчиков. nodesource удобен для системных установок.

Шаг 4 — Установите Bower и Gulp

Bower управляет клиентскими библиотеками, Gulp автоматизирует задачи (сборка, слежение, перезапуск).

Установите Bower глобально:

npm install -g bower

Флаг -g означает глобальную установку в систему.

Установите Gulp глобально:

npm install -g gulp

Проверьте глобально установленные пакеты:

npm list -g --depth=0

Полезные команды npm:

npm uninstall -g packagename

Удалить глобальный пакет.

npm cache -g clean

Очистить кеш npm после удаления пакета.

Шаг 5 — Установите mean-cli

mean-cli — утилита для инициализации и управления проектами на базе mean.io (в исходном материале используется mean-cli).

Установка:

npm install -g mean-cli

Проверка:

npm list -g --depth=0 | grep mean

Если mean-cli установлена, можно создавать проект.

Шаг 6 — Создание первого проекта через mean-cli

Переключитесь на обычного пользователя (в примере — mavis), не создавайте проект от root:

su - mavis

Создаём проект myfirstproject:

mean init myfirstproject

Если появится ошибка ROOT PERMISSIONS IN NPM, создайте директорию .npm в домашней папке пользователя:

cd ~  
mkdir .npm

Установите зависимости проекта:

cd myfirstproject && npm install

Дождитесь окончания установки — это может занять время.

Запустите приложение:

gulp

Вывод при запуске Gulp:

Вывод Gulp при запуске проекта

Если gulp не запущен, можно стартовать сервер напрямую:

node server

Откройте приложение в браузере по IP сервера и порту 3000, например 192.168.1.100:3000.

Пример веб-приложения MEAN на порту 3000

Критерии приёмки

  • MongoDB установлена и слушает порт 27017.
  • Node.js и npm установлены; команды nodejs –version и npm –version возвращают версии.
  • global-пакеты bower, gulp и mean-cli установлены и видны в npm list -g –depth=0.
  • npm install внутри проекта завершился без ошибок.
  • Приложение успешно стартует при gulp или node server и доступно на порту 3000.

Частые проблемы и устранение неисправностей

  • Ошибка прав npm при глобальной установке: используйте –unsafe-perm при необходимости или создайте .npm в домашней папке пользователя.
  • Зависимости не устанавливаются или падают при npm install: проверьте логи npm, наличие build-essential и python (нужны для сборки нативных модулей).
  • Порт 3000 занят: измените порт в конфигурации сервера или освободите порт.
  • Недоступность MongoDB: убедитесь, что служба запущена и нет проблем с правами доступа к data-папке.

Мини-план восстановления

  1. Проверить логи npm и gulp.
  2. Проверить статус MongoDB и Node-приложения.
  3. Отключить firewall/брандмауэр временно для теста.
  4. Воспроизвести ошибку локально в среде разработки.

Альтернативные подходы

  • Использовать nvm для управления версиями Node.js, чтобы легко переключаться между версиями (рекомендация для разработчиков).
  • Рассмотреть другие стековые сборки: MERN (MongoDB, Express, React, Node.js) или MEVN (MongoDB, Express, Vue, Node.js) в зависимости от предпочтений фреймворка на клиенте.
  • Вместо mean.io/mean-cli — использовать стартовые шаблоны и boilerplate-проекты или сборщики (Yeoman, custom scripts).

Рольовые чек-листы при развёртывании

Для разработчика

  • Убедиться, что локальная версия Node.js совпадает с той, что на сервере.
  • Прогнать unit-тесты и сборку gulp.
  • Проверить зависимости в package.json.

Для системного администратора

  • Настроить systemd unit для node server или использовать pm2 для управления процессом.
  • Настроить бэкапы для MongoDB и мониторинг.
  • Ограничить доступ к MongoDB по IP и включить firewall.

Для DevOps

  • Подготовить Docker-контейнеры или CI/CD пайплайн для сборки и деплоя.
  • Настроить окружения (dev/stage/prod) с конфигурацией переменных окружения.

Мини-методология быстрой проверки перед релизом

  1. Обновить пакеты и выполнить npm install в чистой среде.
  2. Прогнать сборку gulp и smoke-тесты.
  3. Перезапустить сервис и проверить доступность главной страницы и API.
  4. Проверить логи на наличие ошибок.

Совместимость и советы по миграции

  • Ubuntu 15.04 использовалась как пример; для новых проектов выбирайте поддерживаемую LTS-версию Ubuntu.
  • Node.js 5.x показан в примере, но это устаревшая версия; планируйте миграцию на текущую LTS-ветку Node.js.
  • Перед обновлением крупных зависимостей прогоняйте тесты и проверяйте breaking changes в changelog зависимостей.

Безопасность и производительность

  • Запускайте MongoDB под отдельным пользователем и с минимально необходимыми правами.
  • В продуктиве используйте reverse-proxy (nginx) для SSL-терминации и управления статикой.
  • Для управления Node-процессами используйте pm2 или systemd, чтобы обеспечивать автоперезапуск и логирование.

Короткий глоссарий

  • MEAN.JS: стек MongoDB, Express, AngularJS, Node.js.
  • mean-cli: утилита для инициализации проектов на базе mean.io.
  • bower: менеджер клиентских библиотек.
  • gulp: таск-раннер для автоматизации сборки.

Часто задаваемые вопросы

Q: Можно ли запускать проект от root?

A: Рекомендуется создавать и запускать проект от обычного пользователя, а не от root — это снижает риски безопасности.

Q: Нужно ли использовать именно Node.js 5.x?

A: Нет. В примере используется 5.x, но для новых проектов выбирайте поддерживаемую LTS-версию Node.js.

Q: Что делать, если npm install зависает?

A: Проверьте сетевой доступ к реестру npm, убедитесь, что нет корпоративного прокси без настроек, попробуйте очистить кеш npm и повторить.

Заключение

MEAN.JS — удобный стек для быстрого старта веб-приложений на JavaScript. В этом руководстве представлены шаги установки на Ubuntu 15.04: от установки MongoDB до создания первого проекта через mean-cli и запуска приложения. Для продакшена адаптируйте версии Node.js и Ubuntu, настройте мониторинг, бэкапы и безопасность.

Важно

Всегда тестируйте обновления зависимостей и операционной системы в отдельной среде перед переносом в продакшн.

Поделиться: X/Twitter Facebook LinkedIn Telegram
Автор
Редакция

Похожие материалы

Несколько аккаунтов Skype: Multi Skype Launcher
Программное обеспечение

Несколько аккаунтов Skype: Multi Skype Launcher

Журнал для работы: повысить продуктивность
Productivity

Журнал для работы: повысить продуктивность

Персональные звуки уведомлений на Android
Android.

Персональные звуки уведомлений на Android

Скачивание шоу Hulu для офлайн‑просмотра
Стриминг

Скачивание шоу Hulu для офлайн‑просмотра

Microsoft Start: персонализированная новостная лента
Новости

Microsoft Start: персонализированная новостная лента

Как изменить имя в Epic Games быстро
Гайды

Как изменить имя в Epic Games быстро