无需root访问权限的R软件包的系统依赖性

问题描述

| 我正在开发一个具有系统依赖性的R包(该包中的大多数都在C ++中),并正在研究分发的最佳实践。我相信没有办法用R软件包分发系统软件包。似乎这个问题最近在该线程中引起了一些注意。 假设用户没有root用户访问权限,并且正在使用R的本地安装。他们在本地获取这些软件包的最佳方法是什么?是否像下载共享库并将它们添加到$ R_HOME / Libraries一样简单?还是最好将它们下载依赖项到本地文件夹并设置LD_LIBRARY_PATH? 我是R的新手,所以我想知道是否有“最佳”解决方案以获得最佳的最终用户体验。     

解决方法

如果它们实际上是系统库,则只需依赖它们并可能通过autoconf进行测试。许多CRAN软件包都这样做。 重塑共享库的部署方式最好留给操作系统,Linux发行版,系统管理员等等,而不是用户空间应用程序。     ,您可以在
inst/
目录中包含任何内容,包括
lib
子目录。如果只需要能够在运行时访问这些库,则可以使用类似“ 2”的方法来相应地设置库路径。 如果您需要在安装/构建时进行链接的库,可能会有点麻烦。我可以想象您可以设置配置脚本和Makefile(R扩展手册的第13-15页)以找到正确的位置...但是我不知道该怎么做,这可能会花费一些麻烦的事情来做(如果做的话请记录下来!) 请注意,尽管R-Forge允许使用二进制文件的程序包(出于明显的安全原因)在CRAN上是不允许的。 (这些建议均未经过测试-我已经在程序包中分发了二进制可执行文件,但从未在库中分发过二进制文件-因此,我希望它会有所帮助,或者至少不会引起误解。)     ,您可能想看看一种方法的
bigmemory
软件包-它包括一个非常重要的增强子集(价值16兆)。     

相关问答

依赖报错 idea导入项目后依赖报错,解决方案:https://blog....
错误1:代码生成器依赖和mybatis依赖冲突 启动项目时报错如下...
错误1:gradle项目控制台输出为乱码 # 解决方案:https://bl...
错误还原:在查询的过程中,传入的workType为0时,该条件不起...
报错如下,gcc版本太低 ^ server.c:5346:31: 错误:‘struct...