将ShinyServer上默认的Shiny加载更改为特定的.libPaths()

时间:2018-11-14 00:24:42

标签: r shiny shiny-server

问题

我正在大学所维护的闪亮服务器上部署闪亮应用程序,并且有许多.libPaths()包含不同版本的软件包。

> .libPaths()
[1] "/zeolite/rpauloo/R/x86_64-pc-linux-gnu-library/3.4"
[2] "/nfs/admin/software/xenial/system-gcc/R_libs"      
[3] "/usr/local/lib/R/site-library"                     
[4] "/usr/lib/R/site-library"                           
[5] "/usr/lib/R/library"  

我的闪亮应用启动时,默认情况下会从shiny加载.libPaths()[2],然后从R6导入R6 V.2.2.1 路径。

但是,我的代码取决于.libPaths()[1].

中的R6 > = V.2.2.2

.libPaths()[2]中进行SysAdmin更新R6很简单,但是它们不能这样做,因为其他人的应用程序依赖该路径上的库,我们不想破坏它们。


我尝试过:

  1. 分离.libPaths()[1]并从detach("package:R6", unload=TRUE, force = TRUE, character.only = TRUE) library(R6, lib.loc = "/zeolite/rpauloo/R/x86_64-pc-linux-gnu-library/3.4") 加载

    shiny
  2. 分离.libPaths()[1]并从detach("package:shiny", unload=TRUE, force = TRUE, character.only = TRUE) library(shiny, lib.loc = "/zeolite/rpauloo/R/x86_64-pc-linux-gnu-library/3.4") 加载

    .libPaths()
  3. global.R文件的开头设置我的.libPaths(.libPaths()[1]) ,使其仅包含我想要的路径。

    etc
  4. "/zeolite/rpauloo/R"下添加一个Rprofile.site文件夹,其中包含以下.First <- function(){ .libPaths("/zeolite/rpauloo/R/x86_64-pc-linux-gnu-library/3.4") } 文件(advice from here):

    R6

这些方法都不起作用。为什么?

  1. shiny是附加软件包,因此无法卸载。
  2. 不确定为何无法卸载/重新加载闪亮
  3. Shiny Server首先在源.libPaths()[2]的文件之前从global.R加载libPaths(),所以设置Rprofile.site无济于事。
  4. shiny文件可能位于错误的目录中,但是将其放在管理目录中会与其他应用程序混淆

问题

如何配置闪亮的应用程序以在启动时从特定的.libPath加载ggplot2 extension

还是我误解了这个问题?还有另一种解决方法吗?

0 个答案:

没有答案