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

时间:2018-08-16 17:36:00

标签: deployment shiny version r-lavaan

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

我正在开发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 

非常感谢!

亲切的问候

2 个答案:

答案 0 :(得分:1)

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

要点是,尽管quadprog软件包已成功安装,但编译不正确。从R 3.4.0的缓存中清除软件包可以解决该问题。

谢谢大家的帮助!

答案 1 :(得分:0)

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