- PVSM.RU - https://www.pvsm.ru -
Если найдётся ещё кто-нибудь, кто как и я вдруг решить использовать RPI в качестве домашнего или тестового сервера с развёрнутым meteor-приложением, надеюсь ему пригодится эта инструкция. Выбор пал именно на Arch Linux, поскольку, как мне известно, в настоящее время это единственный дистрибутив для платформы ARM, поддерживающий работу MongoDB на localhost.
Обычно я пользуюсь Mac OS X и Ubuntu, и это была моя первая встреча с Arch Linux, поэтому кое-какие процедуры вызвали вопросы и заставили покопаться в интернете. Возможно, кому-то эта инструкция покажется примитивной, но я хотел бы найти такую до того, как столкнулся с трудностями. Если вы найдёте неточность, ошибку или захотите что-то добавить — милости прошу в комментарии.
Скачиваем и распаковываем архив с img-образом отсюда [1], затем записываем его на mSD-карту. На своём маке я использовал для этого приложение ApplePi Baker [2]. После записи вставляем карту памяти в RPI и логинимся через ssh:
$ ssh root@192.168.1.11
Пароль по умолчанию — 'root'.
Достаточно подробно процедура расширения дискового пространства раздела описана в этом материале [3] юзера dmitriy5181 [4]. От себя хочу добавить, что для обеспечения работы MongoDB не следует устанавливать в файле /etc/fstab параметр noatime — с ним Mongo у меня не заработал.
Проверяем текущие установки
# timedatectl status
При необходимости смотрим, какие есть часовые пояса, выбираем подходящий
# timedatectl list-timezones
И устанавливаем его командой
# timedatectl set-timezone Europe/Minsk
В общем случае для работы node,js понадобятся python2, утилита make и набор компиляторов GCC. Установим всё необходимое
# pacman -Sy nodejs mongodb python2 make gcc
При установке python2 в Arch Linux создаётся символьная ссылка /usr/bin/python2, но нам потребуется ссылка с именем python, поэтому просто скопируем существующую
# cp /usr/bin/python2 /usr/bin/python
# systemctl start mongodb
Проверить состояние его работы можно командой
# systemctl status mongodb
В Arch Linux присутствует демон systemd [5], поэтому для добавления MongoDB в автозапуск достаточно выполнить команду
# systemctl enable mongodb
На рабочей машине (на той, где вы ведёте разработку проекта с MeteorJS) в папке с приложением (например, ~/meteorapps) создаём бандл нужного проекта командой
$ meteor bundle myapp.tgz
Затем переносим созданный app.tgz на карту памяти mSD и распаковываем
tar -xvzf myapp.tgz
Для начала переустановим библиотеку для работы с 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
Если всё готово, запуск приложения можно осуществить следующим образом.
Создадим файл, в котором будет описан наш сервис и способ его запуска
# 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 [6] и увидеть морду приложения.
Автор: kakawajazz
Источник [7]
Сайт-источник PVSM.RU: https://www.pvsm.ru
Путь до страницы источника: https://www.pvsm.ru/raspberry-pi/81629
Ссылки в тексте:
[1] отсюда: http://downloads.raspberrypi.org/arch/images/arch-2014-06-22/ArchLinuxARM-2014.06-rpi.img.zip
[2] ApplePi Baker: http://www.tweaking4all.com/downloads/raspberrypi/ApplePi-Baker.zip
[3] материале: http://habrahabr.ru/post/219307/
[4] dmitriy5181: http://habrahabr.ru/users/dmitriy5181/
[5] systemd: https://ru.wikipedia.org/wiki/Systemd
[6] 192.168.1.11: http://192.168.1.11
[7] Источник: http://habrahabr.ru/post/249677/
Нажмите здесь для печати.