r-用于系统依赖项的Packrat::restore()



我在Rstudio的Windows机器上开发了一个闪亮的应用程序。现在我需要在Linux机器上开发它,以后需要在服务器上部署它。由于需要跨平台运行该应用程序,我正在研究一些环境控制应用程序,这样我就不必手动调整和重新安装所需的软件包。

我试着用Packrat来达到这个目的。我在我的Windows机器上做了一个快照,将项目复制并粘贴到我的Ubuntu上,在RStudio上重新打开项目,安装了Packrat,软件包的恢复会自动运行。然后我遇到了一个问题,即一些需要系统依赖性的软件包没有自动安装,例如rgdal和jqr。因此,我不得不在终端中手动安装这些系统依赖项(这花了我一段时间,因为其中大约有10个需要额外的系统依赖项(。

我想知道是否有一种更简单的方法可以自动处理这个问题。稍后,我将需要与系统管理员合作,将应用程序部署到服务器。我想知道Packrat是否有能力在Linux机器/服务器上自动安装系统依赖项。如果有人以前遇到过这个问题,或者有其他更好的选择,请告诉我!

谢谢!

大家好,欢迎来到StackOverflow。

您所面临的问题实际上比您最初想象的要困难得多——在不同的操作系统中部署复杂的R包依赖项是一个真正困难的问题,而且说实话,这是一个尚未解决的问题!

当然,您可以将packratrenv用于R包依赖项和特定版本的快照。但这对系统级依赖性没有任何作用,它们被简单地取为";给定";。所以,不要只是转移到另一个盒子里说";abracadabra";。很抱歉

我们最接近解决这个问题的可能是Docker,在那里你可以创建一个可移植的执行单元,可以部署在Docker运行的任何地方:Windows、macOS、不同的Linux风格。。。因为它编码所有的东西。

最新更新