我已经使用 R 开发了一个解决方案,并希望将其传输到没有 Internet 连接来安装软件包的生产服务器 (CentOS 7)。为了方便安装包,我使用 packrat 将 R 脚本中使用的包捆绑到项目中。
使用 packrat::bundle(),我创建了该项目的 tar 文件,并将该文件移动到服务器并解压缩该 zip 文件。
根据post在 Blogger 中,一旦我打开项目,当从该目录启动 R 时,Packrat 将发挥其魔力并确保软件环境与源计算机上的相同。
但是,当我在服务器中打开项目(使用 R-Studio Server 0.99)时,没有任何反应,并且抛出未知包错误。
当手动执行“packarat/init.R”文件时,会抛出以下错误
Error in ensurePackageSymlink(source, target) :
Target '/home/R_Projects/prjName/packrat/lib-R/base' already exists and is not a symlink
最佳答案
嗯,我发现了问题并解决了。符号链接(symbolic link)错误与 centOS 有关(与 R 无关)。我只是简单地删除了
内的所有文件夹/home/R_Projects/prjName/packrat/lib-R
由于这些文件夹存在,packrat 无法在 lib-R 文件夹内创建同名的符号链接(symbolic link)。如果我删除它们,它将创建一个指向 r 包所在实际文件夹的链接(快捷方式)。
希望它对 future 的读者有所帮助。
关于R Packrat 无法加载私有(private)库,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/37584783/