Pull to refresh

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

Reading time 3 min
Views 9.7K


Если найдётся ещё кто-нибудь, кто как и я вдруг решить использовать 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 и увидеть морду приложения.
Tags:
Hubs:
+4
Comments 0
Comments Leave a comment

Articles