R CRAN中的注意事项检查:没有存储库集,因此跳过循环依赖关系检查

从R 3.1.0开始,我得到以下R检查:

* checking package dependencies ... NOTE No repository set, so cyclic dependency check skipped 

我试过这个build议: https : //twitter.com/phylorich/status/431911660698083328

不行。 我把行options(repos="http://cran.rstudio.com/")放在包根目录下的.Rprofile中。 仍然得到注意。

另外编写R扩展的第1.3.1节指出:

 Some Windows users may need to set environment variable R_WIN_NO_JUNCTIONS to a non-empty value. The test of cyclic declarations33in DESCRIPTION files needs repositories (including CRAN) set: do this in ~/.Rprofile. 

这可能是set environment variable R_WIN_NO_JUNCTIONS吗? 如果是这样,我该怎么做呢? 任何其他可能的原因或build议的修复?

从写R扩展

描述文件中循环声明的testing需要存储库(包括CRAN)集:在〜/ .Rprofile中通过例如

 options(repos = c(CRAN="http://cran.r-project.org")) 

推荐的

用户应该仔细检查他的.Rprofile是否在他的家中,并且它包含提到的选项。

 # in R session (any platform) # where is my profile? file.path(Sys.glob("~"),".Rprofile") # is it there? file.exists(file.path(Sys.glob("~"),".Rprofile")) 

或者从R会话使用额外的包:

 library(pathological) r_profile() 

用户应仔细检查选项条目是否嵌套在IF条件中,如下面的代码所示:

 # this will not help for R CMD check --as-cran if(interactive()) { options(repos = c(CRAN="http://cran.r-project.org")) } 

任何平台的空运行

这里是R脚本准备简单的临时R包testing,帮助更快地find你当地的用法出了什么问题。 这个问题帮助我find了.Rprofile文件中的错误,通常可以帮助设置工作初始状态。 在最好的情况下,检查运行应该只显示1注意关于新的提交。

  1. 首先复制/粘贴代码,并将其发送到您的R会话中( – 最好)
  2. 然后运行脚本打印的命令来检查testing用例–as-cran。

 # for example R --vanilla -f makePackage.R # here the resulting package path is as below R --no-site-file CMD check --as-cran /tmp/pkgtest # now see the check log 

如果您的.Rprofile文件不存在,将会创build一个新行,并且在任何情况下都会放在文件末尾。

makePackage.R脚本

 # makePackage.R # makes simple package for playing with check --as-cran # copy this content to file makePackage.R # then source it into your R --vanilla session name <- "pkgtest" # # prepare and adjust package template # tempbase <- dirname(tempdir()) e <- new.env() path <- dirname(tempdir()) # make simple package in path e$fu <- function(){"Hello"} package.skeleton(name=name,force=T,path=path,environment=e) nil <- file.remove( file.path(path,name,'Read-and-delete-me'), file.path(path,name,'man',paste0(name,'-package.Rd')) ) # adjust DESCRIPTION D <- readLines(file.path(path,name,"DESCRIPTION")) D[grepl("^Title: ",D)] <- "Title: Testing Skeleton" D[grepl("^Author: ",D)] <- "Author: John Doe" D[grepl("^Description: ",D)] <- "Description: Checking --as-cran check." D[grepl("^Maintainer: ",D)] <- "Maintainer: John Doe <jdoe@doe.net>" D[grepl("^License: ",D)] <- "License: GPL (>= 2)" write(D,file.path(path,name,"DESCRIPTION")) # make fu.Rd write( "\\name{fu}\\alias{fu}\\title{Prints}\\description{Prints} \\usage{fu()}\\examples{fu()}", file.path(path,name,'man','fu.Rd')) # # ensure that .Rprofile contains repos option # add fresh new line et the end of .Rprofile # userRp <- file.path(Sys.glob("~"),".Rprofile") write("options(repos = c(CRAN='http://cran.r-project.org'))",file=userRp, append=TRUE) # # print final message # msg <- sprintf(" Your test package was created in %s, under name %s, your user .Rprofile in %s was modified (option repos), now check this test package from command line by command: R --no-site-file CMD check --as-cran %s ", path, name, userRp, file.path(path,name) ) # now is time to check the skeleton message(msg) 

检查包裹

 # replace package-path by the path adviced by the sourcing the script above R --no-site-file CMD check --as-cran package-path 

有用户configuration文件和站点configuration文件,在上面的方法中绕过了站点configuration文件(在第二步中),通过使用--no-site-file选项来进行包骨架选项。

PDF错误

您可以体验PDF和乳胶相关的错误,很可能是由于缺less或不完整的乳胶安装而造成的。 Ycan可以使用--no-manual选项跳过PDFtesting。

 R --no-site-file CMD check --no-manual --as-cran /tmp/pkgtest 

上面的答案只适用于Linux。 在Windows上,我不得不使用不同的方法。 当我试图在Windows 7的R 3.2.0中构build并检查我的新软件包时,出现了同样的错误:

 checking package dependencies ... NOTE No repository set, so cyclic dependency check skipped 

我试图在我的新软件包的根目录下创build一个.Rprofile文件,但是这不起作用。 相反,我不得不去:

 C:\Program Files\R\R-3.2.0\etc 

并编辑文件:

 Rprofile.site 

在Rprofile.site文件中,我添加了build议的行:

 options(repos = c(CRAN="http://cran.r-project.org")) 

在我编辑Rprofile.site文件之后,NOTE“No repository set,so cyclic dependency check skipped”终于消失了。

Interesting Posts