Я разрабатываю блестящее приложение, и поскольку я хотел использовать автоматическое тестирование и документацию функции, я начал разрабатывать интерфейс внутри пакета (как рекомендовано здесь).
Я разрабатываю это блестящее приложение в RStudio, и у меня есть файл server.R
, который я могу щелкнуть по кнопке Запустить приложение в RStudio, и все работает. Я передаю свой пакет в репозиторий github, и с этого момента я хочу установить его на свой блестящий сервер R, используя функции devtools
и install_github
.
Теперь мне интересно, как запустить приложение на сервере. Я наивно думал установить пакет и указывать на файл server.R
, но это как-то не работает. Не знаете, где проблемы.
Моя вторая попытка заключалась в создании файла с именем app.R
в папке, доступной на блестящем сервере, и в этом файле я загружаю свой пакет, блестящие и другие необходимые пакеты, но он как-то жалуется из-за недостающих переменных...
Может кто-нибудь дать мне совет? Я также с удовольствием отвечу на любой вопрос, так как я не уверен, как правильно задавать эту проблему. Спасибо заранее.
EDIT Развертывание на блестящем сервере
Поскольку Colin D спрашивал в комментариях, как развернуть эти пакеты на блестящем сервере, я хотел продемонстрировать, как я это делаю.
Прежде всего, я устанавливаю свой пакет на блестящем сервере напрямую через командную строку как root с помощью следующей команды.
su - -c "R -e \"devtools::install_github('user/shinypackage')\""
Следующим шагом будет изменение владельца папки пакета
chown -R shiny:shiny /usr/local/lib/R/site-library/shinypackage/
Затем я перезапускаю блестящий сервер, так как это иногда проблематично с кешированием или так.
systemctl restart shiny-server
Это шаги, которые я выполняю, когда обновляю свое блестящее приложение. Я делаю это обычно снова как root в одной строке
su - -c "R -e \"devtools::install_github('user/shinypackage')\"" & chown -R shiny:shiny /usr/local/lib/R/site-library/shinypackage/ & systemctl restart shiny-server
Нам остается только установить каталог в файле shiny-server.conf
. Я просто добавил путь пакета + каталог приложения, где сохраняются ui.R
и server.R
.
location /shinypackage {
app_dir /usr/local/lib/R/site-library/shinypackage/application;
log_dir /var/log/shiny-server;
}
Затем мне нужно снова перезапустить сервер, используя systemctl restart shiny-server
.
Это используется на сервере Ubuntu.