packrat在闪亮的服务器上工作吗?

时间:2014-10-21 01:21:21

标签: r shiny shiny-server

当我从Rstudio运行时,我的闪亮应用程序运行正常,但同样的项目,当在闪亮的服务器(开源)上运行时,并不使用packrat私有库,这似乎很奇怪。我使用.libPaths()来检查并且私有库没有显示。 我是否需要进行任何配置才能使其正常工作? 感谢。

paste0(.libPaths(),' shinyBS version:',as.character(packageVersion('shinyBS')))

在Rstudio上

[1] "C:/R/ADAP/packrat/lib/i386-w64-mingw32/3.1.1 shinyBS version:0.25"
[2] "C:/R/ADAP/packrat/lib-ext shinyBS version:0.25"                   
[3] "C:/R/ADAP/packrat/lib-R shinyBS version:0.25"

在Shiny Server上

shinyBS version:0.20 Lib:/usr/lib64/R/library shinyBS version:0.20 Lib:/usr/share/R/library

2 个答案:

答案 0 :(得分:2)

有一个配置文件.Renviron,其中包含一个环境变量R_LIBS。这是您的 R 会话(和.libPaths())学习查找库的位置的地方。要更改默认值,请不要直接编辑.Renviron文件,而是在同一目录中创建副本并将其命名为.Renviron.site。编辑此新文件中的R_LIBS变量。这可以防止安装程序在升级时覆盖您的配置更改。

答案 1 :(得分:1)

我能够使packrat与闪亮的服务器开源一起使用。

这是我在CentOS中的目录结构:

/srv/shiny-server/sample-apps/test1/
  .Rprofile
  packrat/
  server.R
  ui.R

在此示例中,我已将packrat生成的.Rprofile文件和packrat/目录(包含编译的库)以及server.Rui.R文件复制到test1目录。

为应用创建R进程后,正确加载了packrat库。

为了验证,我可以这样做:

cd /srv/shiny-server/sample-apps/
sudo cp -r test1 test2
cd test2
sudo rm .Rprofile
sudo rm -rf packrat/

然后,当我访问http://localhost:3838/sample-apps/test2/时,未加载packrat库。

请注意,必须重新启动Shiny Server,才能使更改在某些情况下生效(例如,如果用户当前正在使用该应用程序,则该应用程序的R进程将不会自动重新加载新的库)。从sudo systemctl restart shiny-server(在CentOS上)重新启动。