Установка MeteorJS на Raspberry Pi B+ под управлением Arch Linux ARM

в 8:16, , рубрики: Arch Linux, Meteor, Meteor.JS, Raspberry Pi, метки: , , ,

Установка MeteorJS на Raspberry Pi B+ под управлением Arch Linux ARM - 1

Если найдётся ещё кто-нибудь, кто как и я вдруг решить использовать RPI в качестве домашнего или тестового сервера с развёрнутым meteor-приложением, надеюсь ему пригодится эта инструкция. Выбор пал именно на Arch Linux, поскольку, как мне известно, в настоящее время это единственный дистрибутив для платформы ARM, поддерживающий работу MongoDB на localhost.

Обычно я пользуюсь Mac OS X и Ubuntu, и это была моя первая встреча с Arch Linux, поэтому кое-какие процедуры вызвали вопросы и заставили покопаться в интернете. Возможно, кому-то эта инструкция покажется примитивной, но я хотел бы найти такую до того, как столкнулся с трудностями. Если вы найдёте неточность, ошибку или захотите что-то добавить — милости прошу в комментарии.

1. Установка Arch Linux ARM

Скачиваем и распаковываем архив с img-образом отсюда, затем записываем его на mSD-карту. На своём маке я использовал для этого приложение ApplePi Baker. После записи вставляем карту памяти в RPI и логинимся через ssh:

$ ssh root@192.168.1.11

Пароль по умолчанию — 'root'.

2. Расширение корневого раздела

Достаточно подробно процедура расширения дискового пространства раздела описана в этом материале юзера dmitriy5181. От себя хочу добавить, что для обеспечения работы MongoDB не следует устанавливать в файле /etc/fstab параметр noatime — с ним Mongo у меня не заработал.

3. Установка часового пояса

Проверяем текущие установки

# timedatectl status

При необходимости смотрим, какие есть часовые пояса, выбираем подходящий

# timedatectl list-timezones

И устанавливаем его командой

# timedatectl set-timezone Europe/Minsk

4. Установка node.js и зависимостей

В общем случае для работы node,js понадобятся python2, утилита make и набор компиляторов GCC. Установим всё необходимое

# pacman -Sy nodejs mongodb python2 make gcc

5. Создание символьной ссылки на python

При установке python2 в Arch Linux создаётся символьная ссылка /usr/bin/python2, но нам потребуется ссылка с именем python, поэтому просто скопируем существующую

# cp /usr/bin/python2 /usr/bin/python

6. Запуск установленного Mongo

# systemctl start mongodb

Проверить состояние его работы можно командой

# systemctl status mongodb

В Arch Linux присутствует демон systemd, поэтому для добавления MongoDB в автозапуск достаточно выполнить команду

# systemctl enable mongodb

7. Перенос проекта

На рабочей машине (на той, где вы ведёте разработку проекта с MeteorJS) в папке с приложением (например, ~/meteorapps) создаём бандл нужного проекта командой

$ meteor bundle myapp.tgz

Затем переносим созданный app.tgz на карту памяти mSD и распаковываем

tar -xvzf myapp.tgz

8. Установка специфических зависимостей

Для начала переустановим библиотеку для работы с unicode (с системной версией что-то было не так)

# pacman -Sy libunistring

Установим пакеты для node.js

# npm install fibers@1.0.1 bcrypt@0.7.7

Я использовал специфические версии, но полагаю, что с последними тоже всё заработает. Если нет — их всегда можно переустановить, используя команду, приведённую выше.

Также для моего проекта понадобились некоторые библиотеки

# npm install underscore source-map-support semver
# npm install

9. Запуск приложения

Если всё готово, запуск приложения можно осуществить следующим образом.

Создадим файл, в котором будет описан наш сервис и способ его запуска

# nano /usr/lib/systemd/system/myapp.service

Содержимое файла myapp.service

[Unit]
Description=My awesome Meteor.JS app
After=mongodb.target

[Service]
User=pi
Environment=ROOT_URL=http://192.168.1.11 PORT=80 MONGO_URL=mongodb://localhost:27017/myapp
ExecStart=/usr/bin/node /home/pi/meteorapps/myapp/main.js

[Install]
WantedBy=multi-user.target

Здесь нужно подставить имя пользователя, PORT, ROOT_URL и путь к main.js.

Запуск сервиса осуществляется командой

# systemctl start myapp

Аналогично случаю с MongoDB сервис можно добавить в автозапуск

# systemctl enable myapp

Если всё прошло гладко, теперь можно зайти с рабочей машины по адресу 192.168.1.11 и увидеть морду приложения.

Автор: kakawajazz

Источник


* - обязательные к заполнению поля


https://ajax.googleapis.com/ajax/libs/jquery/3.4.1/jquery.min.js