Packrat bootstrap 没有找到 Packrat 私有库

Packrat bootstrap doesn't find the packrat private library

我已经构建了一个 Packrat 项目,其中在 Packrat 私有库中安装了几个包。我想获取代码并将其与 Packrat 库一起带到另一个系统。我在其中构建库的系统是来自 Rstudio 的 Windows 7 运行 R 3.2.2,而我要将其移动到的系统是 Linux 机器 运行 R 3.1 .2 从命令行。 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,但我强烈觉得我可能做错了什么导致了问题。

感谢您的帮助!

事实证明,我遇到的问题是我在尝试将其移动到其他系统之前没有 snapshotted packrat。我首先 运行 packrat::snapshot() 解决了这个问题,然后主要像以前一样进行。

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

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

这个问题发布已经 2 年了。我一年前使用 packrat 包,但直到今天我仍然发现它根本无法使用。我尝试安装 dplyr,安装 BH 包(依赖项)需要 1 小时。

使用 checkpoint 包更好。您必须指定 1 个函数

checkpoint("your_snapshot_date")

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