Введение
Идея попробовать установить OneScript на устройство типа Raspberry Pi возникла у меня давно, однако сей эксперимент постоянно откладывался, ввиду различных обстоятельств. И вот, улучив момент, когда ребенок смотрел мультфильмы, я наконец-таки решил попробовать. О том, что из этого получилось - читайте ниже.
Приборы и материалы
В качестве устройства, в экспериметах использовался Raspberry Pi 2.
В качестве операционной системы, на которую производилась установка, использовалась Raspbian OS. Само устройство, поддерживает достаточно большое количество операционных систем, среди которых есть и Ubuntu без графического интерфейса. Конечно, для практического использования - это более правильный вариант, однако, ввиду того, что экспериментальное устройство принадлежит ребенку, и количество времени, выделенное на эксперимент было ограничено, было принято решение использовать уже установленную ОС.
Поскольку Raspbian OS имеет в своей основе Debian, настройка системы мало отличается от настройки Ubuntu Server, описанной в соответствующей статье. Соответственно, моменты одинаковые для обеих ОС, подробно рассматриваться не будут.
Настройка системы
Получаем доступ к командной строке
Как и в случае с Ubuntu Server, Вы можете подключиться к устройству при помощи клиента SSH, предварительно разрешив подключения в ОС, или запустить штатный LXTerminal из графической оболочки.
Обновляем список доступных пакетов и устанавливаем новые версии
В командной строке выполняем следующие команды:
sudo apt-get update
sudo apt-get upgrade
Устанавливаем mono
Сначала я попробовал установить mono из штатного репозитария, однако, как впоследствии выяснилось, версия mono в нем старая, и ядро OneScript завершало работу с ошибкой, поэтому необходимо подключить репозитарий mono-project.
Поиск в google выдал необходимую ссылку с инструкцией.
Обратите внимание, что ссылки для Raspberry отличаются от тех, которые используются для подключения репозитария x86.
Для подключения репозитария, в командной строке выполняем нижеследующие команды:
sudo apt-key adv --keyserver keyserver.ubuntu.com --recv-keys 3FA7E0328081BFF6A14DA29AA6A19B38D3D831EF
echo "deb http://download.mono-project.com/repo/debian wheezy main" | sudo tee /etc/apt/sources.list.d/mono-xamarin.list
sudo apt-get update && apt-get upgrade
Для установки mono выполняем:
sudo apt-get install mono-complete
Установка web-сервера
Не смотря на то, что для Raspbian есть и apache и mod-mono, и вроде-бы все должно быть хорошо, гугл выдал некоторое количество публикаций, в которых говорится о проблемах с использованием mod-mono server на Raspberry. Поэтому было принято решение, использовать в качестве web-сервера XSP (к тому-же установка apache и mono-mod-server уже описана в другой статье). Это простой web-сервер, который как правило используется для разработки и отладки, однако, он может быть успешно применен и в продуктивных средах в связке с ngix. Поскольку время эксперимента, а также файловые ресурсы на SD-карте устройства были ограничены, я ограничился установкой только XSP.
Для установки XSP, в командной строке выполните следующую команду:
sudo apt-get install mono-xsp4
Развертывание приложения
В качестве приложения для развертывания было выбрано приложение, описанное в этой статье (//infostart.ru/public/792995/).
В папке /home/pi, была создана папка onescript, куда и было разархивировано содержимое архива приложения.
После распаковки, файл Web.config был переименован в _Web.config, а файл web.config.linux соответственно в web.config.
Запуск приложения
Поскольку web-сервер XSP не является службой (демоном), запуск web-сервера был произведен "вручную".
Для запуска, необходимо перейти в папку с web-приложением:
cd /home/pi/onescript
и запустить web-сервер
xsp4
После старта, web-сервер сообщит нам информацию, необходимую для доступа к web-приложению
После ввода в браузере соответствующего url, мы увидим наше web-приложение.
Для автоматического старта XSP при старте ОС, необходимо внести небольшие изменения в загрузочные скрипты, однако в силу того, что я не тестировал эти настройки, эта тема выходит за рамки настоящей статьи.
Заключение
OneScript, в частности http-сервисы, можно вполне успешно использовать на устройствах Raspberry Pi, версии >= 2. Это может быть полезно в тех случаях, когда использовать отдельный компьютер или виртуальную машину нецелесообразно (ну и в конце концов - просто интересно :)).