Packrat :: restore用于系统依赖

问题描述

我正在Rstudio的Windows计算机上开发一个闪亮的应用程序。现在,我需要在Linux机器上进行开发,之后再将其部署在服务器上。由于需要跨平台运行该应用程序,因此我正在研究一些环境控制应用程序,从而不必手动调整和重新安装所需的软件包。

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

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

谢谢!

解决方法

您好,欢迎来到StackOverflow。

您所面临的问题实际上比起初您想的要困难得多 ---在不同操作环境中部署 complex R程序包依赖系统是一个真正的困难,实际上,这是一个尚未解决的问题!

您当然可以将packratrenv用于 R软件包的依存关系和特定版本的快照。但这对于系统级依赖项 不做任何事情,这些依赖项被简单地视为“给定”。因此,不要只是转移到另一个盒子并说“ abracadabra”。抱歉!

我们可能最想解决此问题的可能是Docker,您可以在其中创建一个便携式执行单元,该单元可以部署在Docker运行的任何位置:Windows,macOS,不同的Linux版本,.. .。因为它可以对所有内容进行编码。