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

5dcc1c7f1b004898b1ac70cc8d27e853.pngЕсли найдётся ещё кто-нибудь, кто как и я вдруг решить использовать 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 и увидеть морду приложения.

© Habrahabr.ru