2

我已经构建了一个 Packrat 项目,其中包含几个安装在 Packrat 私有库中的包。我想获取代码并将其与 Packrat 库一起带到另一个系统。我在其中构建库的系统是从 Rstudio 运行 R 3.2.2 的 Windows 7,而我将其移动到的系统是从命令行运行 R 3.1.2 的 Linux 机器。Windows 机器上的 Packrat 版本为 0.4.6-1。以下是我采取的行动的概要:在我运行的 Windows 机器上

> packrat::bundle(include.lib=TRUE)

我将生成的捆绑包移至 Linux 系统,并在其中使用tar -zxvf packrat_bundle.tar.gz. 然后我进入新解压缩的目录并启动 R。从那里,packrat 自动引导(由于source("packrat/init.R")packrat 放在 .Rprofile 中)并给出以下输出

    Packrat is not installed in the local library -- attempting to bootstrap an installation...
> Installing packrat into project private library:
- '/home/code/packrat/lib/x86_64-unknown-linux-gnu/3.1.2'
* installing *source* package âpackratâ ...
** package âpackratâ successfully unpacked and MD5 sums checked
** R
** inst
** preparing package for lazy loading
** help
*** installing help indices
** building package indices
** testing if installed package can be loaded
* DONE (packrat)
> Attaching packrat
> Restoring library
Already up to date.
> Packrat bootstrap successfully completed. Entering packrat mode...
Updating system packages ('3.2.2' -> '3.1.2')
Packrat mode on. Using library in directory:
- "/home/code/packrat/lib"
Warning message:
In restore(restart = FALSE) :
  The most recent snapshot was generated using R version 3.2.2

在此之后,输出.libPaths()

> .libPaths()
[1] "/home/code/packrat/lib/x86_64-unknown-linux-gnu/3.1.2"
[2] "/home/code/packrat/lib-ext"
[3] "/home/code/packrat/lib-R"

问题是我在 Windows 机器上创建的库包含在目录中/home/code/packrat/lib/x86_64-w64-mingw32/3.2.2。因此,我必须添加它以.libPaths使 packrat 库正常工作。我不介意.libPaths手动更改,但我强烈感觉我可能做错了导致问题的事情。

谢谢你的帮助!

4

2 回答 2

3

事实证明,我遇到的问题是我snapshot在尝试将它移到另一个系统之前没有 ted packrat。packrat::snapshot()我首先运行然后像以前一样继续进行,从而 解决了这个问题。

我错误地假设通过使用packrat::bundle(include.lib=TRUE)它我可以以这种方式转移我的图书馆。情况并非如此,尤其是当库需要移动到另一个系统并从源代码重建时。快照首先负责源重建,然后 packrat 正确引导。

于 2015-11-19T16:44:43.243 回答
0

我的回答与问题无关,但我想写在这里,所以也许有人会读到这篇文章并节省很多时间和挫败感。

自发布此问题以来已经 2 年了。packrat一年前我用过包,今天我发现它根本不可用。我尝试安装dplyr,安装 BH 包(依赖项)需要 1 小时。

更好地使用checkpoint包。您必须指定 1 个功能

checkpoint("your_snapshot_date")

并且您已准备好分享您的代码作为可重现的示例。安装 dplyr 的时间:3 分钟。

于 2018-11-13T15:47:52.037 回答