【问题标题】:Deploy Shiny application with older version of particular package使用旧版本的特定包部署 Shiny 应用程序
【发布时间】:2018-08-16 17:35:59
【问题描述】:

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

我正在开发一个 Shiny 应用程序,需要旧版本的 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 

提前非常感谢!!

亲切的问候

【问题讨论】:

    标签: deployment shiny version r-lavaan


    【解决方案1】:

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

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

    感谢大家的帮助!

    【讨论】:

      【解决方案2】:

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

      【讨论】:

      • 嗨,亚当!非常感谢您的建议!基于此link,我正在尝试packrat,但我仍然遇到错误。在使用rsconnectdeployApp 似乎忽略了packrat 文件夹)部署应用程序时,您如何告诉闪亮使用 packrat 库?非常感谢!
      • rsconnects 部署会自动为您打包。你能发布 rsconnect::appDependencies() 的输出吗?我很想看看 rsconnect 是否拉错了版本依赖。
      • 嗨,亚当。如果rsconnect 部署了packrat 中提到的库,我怀疑部署时会使用这些版本的依赖项。 (由于这个原因,我在启动packrat 时遇到了一些麻烦:因为某些版本的依赖项需要)。但是,即使使用packrat,部署时也会不断弹出相同的错误。你知道如何解决这个问题吗?
      猜你喜欢
      • 2020-06-23
      • 1970-01-01
      • 2015-04-29
      • 2023-04-02
      • 2023-01-17
      • 2013-10-29
      • 2017-02-28
      • 1970-01-01
      • 2017-03-09
      相关资源
      最近更新 更多