闪亮的服务器预加载包?

Shiny server preloads packages?

我是 运行ning Shiny Server Pro v1.5.10.990。我想要 运行 一个依赖于 Rcpp 包版本 1.0.1 的应用程序。我将这个包安装到本地应用程序库中。问题是服务器上有一个全局包库,它保存着 1.0.0 版本的 Rcpp 包。应用程序崩溃并出现以下错误:

Package ‘Rcpp’ version 1.0.0 cannot be unloaded:
 Error in unloadNamespace(package) : namespace ‘Rcpp’ is imported by ‘httpuv’, ‘htmltools’, ‘later’, ‘promises’ so cannot be unloaded
Calls: runApp ... tryCatch -> tryCatchList -> tryCatchOne -> <Anonymous>
Execution halted

但是,Rcpp 是我在代码中加载的第一个包。 Shiny 服务器是否有可能预加载包‘httpuv’、‘htmltools’、‘later’、‘promises’? 有什么想法可以卸载 Rcpp 包并从本地库加载它吗?

正如 user2554330 在评论中所建议的那样,我查找了 R_LIBS 选项并找到了 this article 指向我将 Shiny Server(仅在 Pro 版本中工作)配置为 运行 这个特定的应用程序及其本地包,覆盖了全局包库。这解决了我的问题。

  location /AinA-mvp2 {
    run_as         shiny;
    site_dir       /srv/shiny-server/localarea36;
    log_dir        /mnt/logs/Test/localarea36;
    log_file_mode  0644;
    exec_supervisor "R_LIBS_USER=/srv/shiny-server/localarea36/library"