Packrat::restore() 用于系统依赖
Packrat::restore() for system dependencies
我在 Rstudio 的 Windows 机器上开发了一个 shiny-app。现在我需要在 Linux 机器上开发它,稍后需要将它部署到服务器上。由于需要 运行 应用程序跨平台,我正在研究一些环境控制应用程序,这样我就不必手动调整和重新安装所需的包。
我尝试使用 Packrat 来达到这个目的。我在我的 Windows 机器上做了一个快照,将项目复制并粘贴到我的 Ubuntu,在 RStudio 上重新打开项目,安装 Packrat 并自动恢复包 运行。然后我 运行 遇到了一些需要系统依赖的包没有自动安装的问题,例如rgdal 和 jqr。因此,我不得不在终端中手动安装这些系统依赖项(这花了我一段时间,因为其中大约有 10 个需要额外的系统依赖项)。
我想知道是否有更简单的方法来自动处理这个问题。稍后,我将需要与系统管理员一起将应用程序部署到服务器。我想知道 Packrat 是否具有在 Linux machine/server 上自动安装系统依赖项的能力。如果有人以前遇到过这个问题,或者有其他更好的选择,请告诉我!
谢谢!
您好,欢迎来到 Whosebug。
您面临的问题实际上远比您一开始想象的更难解决---部署复杂 R包依赖性跨不同操作系统是一个真正的困难而且,说实话,未解决的问题!
您当然可以使用 packrat
和 renv
作为 R 包依赖项 和特定版本的快照。但这 not 对 system-level dependencies 做任何事情,这只是被视为“给定”。所以不要只是转移到另一个盒子并说“abracadabra”。抱歉!
我们最接近解决这个问题的可能是Docker,您可以在其中创建一个可移植执行单元,可以部署在任何地方Docker 运行:Windows,macOS,不同的 Linux 风格,...因为它对所有内容进行编码。
我在 Rstudio 的 Windows 机器上开发了一个 shiny-app。现在我需要在 Linux 机器上开发它,稍后需要将它部署到服务器上。由于需要 运行 应用程序跨平台,我正在研究一些环境控制应用程序,这样我就不必手动调整和重新安装所需的包。
我尝试使用 Packrat 来达到这个目的。我在我的 Windows 机器上做了一个快照,将项目复制并粘贴到我的 Ubuntu,在 RStudio 上重新打开项目,安装 Packrat 并自动恢复包 运行。然后我 运行 遇到了一些需要系统依赖的包没有自动安装的问题,例如rgdal 和 jqr。因此,我不得不在终端中手动安装这些系统依赖项(这花了我一段时间,因为其中大约有 10 个需要额外的系统依赖项)。
我想知道是否有更简单的方法来自动处理这个问题。稍后,我将需要与系统管理员一起将应用程序部署到服务器。我想知道 Packrat 是否具有在 Linux machine/server 上自动安装系统依赖项的能力。如果有人以前遇到过这个问题,或者有其他更好的选择,请告诉我!
谢谢!
您好,欢迎来到 Whosebug。
您面临的问题实际上远比您一开始想象的更难解决---部署复杂 R包依赖性跨不同操作系统是一个真正的困难而且,说实话,未解决的问题!
您当然可以使用 packrat
和 renv
作为 R 包依赖项 和特定版本的快照。但这 not 对 system-level dependencies 做任何事情,这只是被视为“给定”。所以不要只是转移到另一个盒子并说“abracadabra”。抱歉!
我们最接近解决这个问题的可能是Docker,您可以在其中创建一个可移植执行单元,可以部署在任何地方Docker 运行:Windows,macOS,不同的 Linux 风格,...因为它对所有内容进行编码。