我正在运行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”,“以后”,“承诺”? 有什么想法可以卸载Rcpp软件包并从本地库中加载它吗?
答案 0 :(得分:0)
如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"