当我从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
答案 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.R
和ui.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上)重新启动。