我正在开发我的第一个R包(使用R 2.13,Ubuntu 10.10)。我们将其称为foo,并假设R /目录中的代码以库(bar)开始,其中bar是CRAN中foo所依赖的现有包。我的DESCRIPTION文件包含以下行:
Depends: bar
当软件包foo准备好进行测试时,我使用以下命令在本地安装它:
R CMD INSTALL foo_1.0.tar.gz
但是,如果未安装bar,我会看到:
ERROR: dependency ‘bar’ is not available for package ‘foo’
显然,如果我的foo是使用install.packages()从CRAN安装的,则bar将同时安装。所以我的问题是:当我使用R CMD INSTALL安装软件包foo时,如何确保安装了CRAN软件包栏?这是配置脚本的工作吗?
最佳答案
实际上,重新阅读R扩展指南并没有说R CMD INSTALL将获得CRAN的依赖。 R中的install.packages()方法可以做到这一点,但乍一看我不认为R CMD INSTALL可以。
您可以使用install.packages从.tar.gz安装,但是必须设置repos = NULL,然后适用:
dependencies: logical indicating to also install uninstalled packages
on which these packages depend/suggest/import (and so on
recursively). Not used if repos = NULL.
我怀疑要做的是从描述文件中删除依赖项,然后在干净的环境中测试构建时,对那些运行R并执行install.packages()。