使用特定包的旧版本部署 Shiny 应用程序

Deploy Shiny application with older version of particular package

这可能是一个愚蠢的问题,但我无法解决以下问题:

我正在开发一个 Shiny-app,需要旧版本的 lavaan 才能获得与几周前相同的结果。我使用以下代码在本地安装旧版本:install_version("lavaan",version = "0.5-23.1097"),并使用 library(lavaan) 将这个旧版本加载到我的 server.R 文件中。我还在 server.R 文件中的列表中添加了所有可能的依赖项,以便在本地一切正常。

但是,当我尝试部署我的应用程序时,我在任务日志的末尾获得以下内容:

[2018-08-16T17:00:24.569989191+0000] Installing R package: quadprog (1.5-5)
* installing to library �/opt/R/3.4.0/lib/R/library�
* installing *binary* package �quadprog� ...
* DONE (quadprog)
[2018-08-16T17:00:24.749745586+0000] Building R package: lavaan (0.5-23.1097)
/mnt/packages/build /mnt
* installing to library �/opt/R/3.4.0/lib/R/library�
* installing *source* package �lavaan� ...
** package �lavaan� successfully unpacked and MD5 sums checked
** R
** data
*** moving datasets to lazyload DB
** inst
** preparing package for lazy loading
Error in dyn.load(file, DLLpath = DLLpath, ...): 
    unable to load shared object '/opt/R/3.4.0/lib/R/library/quadprog/libs/quadprog.so':
    libRblas.so: cannot open shared object file: No such file or directory
ERROR: lazy loading failed for package �lavaan�
* removing �/opt/R/3.4.0/lib/R/library/lavaan�

显然,它能够找到旧的 lavaan 版本并将其解压缩,但是一旦执行此 lazy loading 操作,它就会崩溃。

有人知道我在哪里可以删除这个 lazy loading 或者在哪里可以找到这个 quadprog.solibRblas.so 文件吗?我假设正在发生更重要的事情,但我无法弄清楚。在下面,您可以找到我的 sessionInfo() 输出。

R version 3.4.0 (2017-04-21)
Platform: x86_64-w64-mingw32/x64 (64-bit)
Running under: Windows 7 x64 (build 7601) Service Pack 1

Matrix products: default

locale:
[1] LC_COLLATE=Dutch_Belgium.1252  LC_CTYPE=Dutch_Belgium.1252 LC_MONETARY=Dutch_Belgium.1252 LC_NUMERIC=C                  
[5] LC_TIME=Dutch_Belgium.1252    

attached base packages:
[1] stats     graphics  grDevices utils     datasets  methods   base     

other attached packages:
 [1] lavaan_0.5-23.1097 quadprog_1.5-5     MASS_7.3-47        numDeriv_2016.8-1  htmlwidgets_1.0    jsonlite_1.5       htmltools_0.3.6   
 [8] yaml_2.2.0         tibble_1.4.2       DT_0.2             ggplot2_2.2.1      rmarkdown_1.8      stringi_1.1.7      foreign_0.8-67    
 [15] magrittr_1.5       rsconnect_0.8.5    shinyjs_0.9.1      shinythemes_1.1.1  shiny_1.1.0        devtools_1.13.6   

loaded via a namespace (and not attached):
[1] Rcpp_0.12.18     git2r_0.18.0     pillar_1.3.0     compiler_3.4.0   later_0.7.3      plyr_1.8.4       bitops_1.0-6     tools_3.4.0     
[9] digest_0.6.12    memoise_1.1.0    evaluate_0.10.1  gtable_0.2.0     rlang_0.2.1      rstudioapi_0.6   curl_3.1         pbivnorm_0.6.0  
[17] httr_1.2.1       withr_1.0.2      stringr_1.2.0    knitr_1.17       stats4_3.4.0     rprojroot_1.2    grid_3.4.0       R6_2.2.2        
[25] RJSONIO_1.3-0    backports_1.1.0  scales_0.4.1     promises_1.0.1   mnormt_1.5-5     mime_0.5         xtable_1.8-2     colorspace_1.3-2
[33] httpuv_1.4.5     miniUI_0.1.1     RCurl_1.95-4.8   lazyeval_0.2.0   munsell_0.4.3    crayon_1.3.4 

非常感谢!!

亲切的问候

尝试使用 packrat 来管理您的包版本。这就是我 运行 使用不同版本的包闪亮应用程序的方式,它使它们可以以维护正确包的方式部署以连接服务器。

显然,我的问题与管理软件包版本无关。 解决方案可以在此 link 上找到,感谢 Joshua Spiewak。

要点是软件包 quadprog 虽然已成功安装,但未正确编译。从 R 3.4.0 的缓存中刷新包解决了这个问题。

谢谢大家的帮助!