我当时正在Rstudio的Windows机器上开发一个闪亮的应用程序。现在我需要在Linux机器上开发它,稍后需要在服务器上部署它。由于需要跨平台运行该应用程序,我研究了一些环境控制应用程序,这样我就不必手动调优和重新安装所需的软件包。
我试着用Packrat来达到这个目的。我在我的Windows机器上做了一个快照,将项目复制并粘贴到我的Ubuntu上,在RStudio上重新打开项目,安装Packrat并自动运行包的恢复。然后,我遇到了一个问题,一些需要系统依赖的包不是自动安装的,例如rgdal和jqr。因此,我必须手动在终端中手动安装这些系统依赖项(这花费了我一段时间,因为其中大约有10个需要额外的系统依赖项)。
我想知道是否有更简单的方法来自动处理这个问题。稍后,我需要使用系统管理器将应用程序部署到服务器。我想知道Packrat是否有能力在Linux机器/服务器上自动安装系统依赖项。如果有人以前遇到过这个问题,或者有其他更好的选择,请告诉我!
谢谢!
发布于 2020-09-23 20:21:39
你好,欢迎来到StackOverflow。
你正面临着一个比你最初想象的更难解决的问题--在不同的操作系统之间部署复杂的R包依赖关系是一个非常困难的问题,说实话,这个问题还没有解决!
当然,您可以将packrat和renv用于R包依赖项和特定版本的快照。但这对系统级依赖项没有任何作用,这些依赖项被简单地看作是“给定的”。所以,不要只是转移到另一个盒子,说“and”。抱歉的!
我们最接近解决这个问题的地方可能是Docker,您可以创建一个可移植的执行单元,无论Docker运行在哪里: Windows、macOS、不同的Linux口味,.因为它编码了所有的东西。
https://stackoverflow.com/questions/64035561
复制相似问题