我已经构建了一个 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
手动更改,但我强烈感觉我可能做错了导致问题的事情。
谢谢你的帮助!