如何调试在狭窄环境下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")