如何调试在狭窄环境下R CMD检查失败的情况

如何调试在狭窄环境下R CMD检查失败的情况,r,package,R,Package,为另一个包构建调试表示歉意,但我在这里完全被难住了 使用R-devel.sh CMD检查taRifx.geo_1.0.6.tar.gz--as cran在(X)Ubuntu 14.04 LTS上,通过安装,我得到以下错误: * checking examples ... ERROR Running examples in ‘taRifx.geo-Ex.R’ failed The error occurred in: [ ...SNIP... ] > ### * </HEADER>

为另一个包构建调试表示歉意,但我在这里完全被难住了

使用
R-devel.sh CMD检查taRifx.geo_1.0.6.tar.gz--as cran
在(X)Ubuntu 14.04 LTS上,通过安装,我得到以下错误:

* checking examples ... ERROR
Running examples in ‘taRifx.geo-Ex.R’ failed
The error occurred in:
[ ...SNIP... ]
> ### * </HEADER>
> library('taRifx.geo')
Loading required package: sp
Error in loadNamespace(i, c(lib.loc, .libPaths()), versionCheck = vI[[i]]) : 
  there is no package called ‘lattice’
Error: package ‘sp’ could not be loaded
Execution halted
如果我通过RStudio或命令行R(但不是-devel版本)运行
rcmd check
,我也不会得到任何错误

问题是,当我在整个项目的代码中搜索“lattice”时,我找不到使用它的任何实例,即使是在示例文件中
lattice
已安装,我已尝试在
建议的
和不建议的情况下使用lattice进行检查

项目代码如下:

检查日志如下所示

现在问一个问题:我该如何调试它?我对问题可能出在哪里有一些想法(一些包依赖于而不是导入,空间包往往具有非常交叉的名称空间),但是我不能真正开始解决这个问题,除非我可以在一个环境中重现这个错误,而不是通过
R-devel.sh
从命令行运行
R CMD check

顺便说一句,这是
正在开发中(不稳定)(2014-05-26 r65771)-“未受影响的后果”
。恰当命名

编辑

以下是
/usr/local/lib/R/site library
的内容:

akima       digest      labeling  plyr          RJSONIO      stringr
bitops      evaluate    lattice   proto         R.methodsS3  survival
boot        fields      mapproj   pspline       R.oo         taRifx
caTools     functional  maps      RandomFields  RSQLite      taRifx.geo
cluster     gdata       maptools  RColorBrewer  R.utils      testthat
colorspace  geoR        MASS      Rcpp          scales       whisker
data.table  ggplot2     Matrix    RCurl         shapefiles   xtable
DBI         gtable      memoise   reshape2      sp
devtools    gtools      munsell   rgdal         spam
dichromat   httr        nlme      rgeos         splancs
install.packages(c('lattice','sp'),lib="/usr/local/lib/R-devel/lib/R/library")
lattice
描述文件显示:

Depends: R (>= 2.15.1)
Built: R 3.2.0; x86_64-unknown-linux-gnu; 2014-05-29 17:14:03 UTC; unix

CMD check上仍然存在相同的错误,我一直试图在
“/usr/local/lib/R/site library”
安装到站点范围的库中,但没有解决这个问题,而是强行执行了一个解决方案

首先,找到R可能看到的所有地方:

> .libPaths()
[1] "/usr/local/lib/R/site-library"       
[2] "/usr/lib/R/site-library"             
[3] "/usr/lib/R/library"                  
[4] "/usr/local/lib/R-devel/lib/R/library"
然后,作为root用户,依次安装到每一个上,直到错误消失。事实证明,它是
“/usr/local/lib/R-devel/lib/R/library”

然后运行
R-devel
会话并运行
R-devel.sh CMD检查mypackage.tar.gz--as cran

至于为什么它首先需要
lattice
,我怀疑它在启动时引入了一个
.Rdata
文件,该文件的名称空间中有
lattice


非常感谢@DirkEddelbuettel和@GavinSimpson在正确的方向上所做的各种努力。

检查运行改变了
.libPaths()
。确保你在一个总是包含的地方有所需的库——我喜欢
/usr/local/lib/R/site library
。我打赌你有一个发布R的包库,它与你的
R-devel
使用的包库不同。当尝试将
R-released
R-devel
与不同的自定义包库一起使用时,这是一个常见问题。为了找到正确的库,我花了很长时间才找到了
R-devel
,我放弃了,只是安装到了尊重默认库的位置。这对包开发很好。谢谢你们两位。我将尝试安装到
/usr/local/lib/R/site library
,并查看运行情况。您是否使用
--和推荐的
配置了R-devel?对我来说,如果我使用推荐的方法编译,并使用标准库位置
/path来构建dir/library
,或者如果您安装了它,则所有这些都可以工作。我使用和@DirkEddelbuettel的脚本安装了它。将尝试使用
——使用推荐的
install.packages(c('lattice','sp'),lib="/usr/local/lib/R-devel/lib/R/library")