【发布时间】:2016-10-16 07:06:25
【问题描述】:
我正在开发一个闪亮的应用程序,因为我想使用函数的自动化测试和文档,我开始在一个包中开发接口(推荐here)。
我在 RStudio 中开发了这个闪亮的应用程序,我有一个 server.R 文件,我可以在 RStudio 中单击 Run App 按钮,一切正常。我将我的包提交到 github 存储库,从这一点开始,我想使用 devtools 和 install_github 函数将它安装在我的 R shiny 服务器上。
现在我想知道如何在服务器中启动我的应用程序。我天真地想安装软件包并指向server.R 文件,但这在某种程度上不起作用。不知道问题出在哪里。
我的第二次尝试是在闪亮服务器可访问的文件夹中创建一个名为 app.R 的文件,在这个文件中,我基本上加载了我的包、闪亮的和其他需要的包,但由于缺少变量,它以某种方式抱怨......
有人可以给我一个建议吗?我也很乐意回答任何问题,因为我不确定如何正确提出这个问题。 提前致谢。
EDIT 部署到闪亮的服务器
由于 Colin D 在 cmets 中询问如何在闪亮的服务器上部署这些软件包,我想演示一下我是如何做到这一点的。
首先,我使用以下命令直接通过命令行以 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 服务器上使用的。
【问题讨论】:
-
我这样做是例行公事。我将我的应用程序文件放在包的
inst目录中,并包含一个名为launch_application的函数,它仅使用我想要的默认参数调用runApp。应用程序文件通过system.file找到 -
听起来像我要找的东西。那么
inst文件夹中有哪些文件?只是调用launch_application函数和library调用?由于我将每个函数放在R文件夹中的一个额外文件中,我希望我可以将它们导出并加载我的包...
标签: r shiny shiny-server devtools