正确使用devtools和/或RStudio相对于.Rbuildignore

时间:2014-08-28 23:37:21

标签: r build rstudio ignore devtools

我希望在通过.Rbuildignore构建R包时排除以下资源:

^.*\.Rproj$
^\.Rproj\.user$
inst/examples
inst/prof
man-roxygen
tests

但我感到很困惑,因为它似乎有时会起作用,有时它却没有。

我猜测我是否需要使用devtools::build()devtools::install()或者在点击SHFT + CTRL + B(或 Build&gt ;>在RStudio中构建和重新加载)。

我能找到的唯一相关资源this post导致this issue,但我还没有完全掌握它。

这就是我的尝试:

  1. 通过RStudio快捷方式加载所有,然后加载 Build and Reload

    这是我在调用list.files(file.path(R.home("library"), "mypackage"))时看到的内容:

    [1] "DESCRIPTION" "examples"    "help"        "html"       
    [5] "INDEX"       "Meta"        "NAMESPACE"   "prof"       
    [9] "R"      
    
  2. 加载所有,然后加载 Build and Reload ,然后加载devtools::install()

    这是我在调用list.files(file.path(R.home("library"), "mypackage"))时看到的内容:

     [1] "DESCRIPTION" "examples"    "help"        "html"       
     [5] "INDEX"       "Meta"        "NAMESPACE"   "prof"       
     [9] "R"           "tests"      
    
  3. devtools::load_all()后跟devtools::build(),然后是devtools::install()

    这是我在调用list.files(file.path(R.home("library"), "mypackage"))时看到的内容:

     [1] "DESCRIPTION" "examples"    "help"        "html"       
     [5] "INDEX"       "Meta"        "NAMESPACE"   "prof"       
     [9] "R"           "tests"    
    

    解压缩.tar.gz文件并检查目录内容:

     [1] "DESCRIPTION" "man"          "NAMESPACE"  "R"
    
  4. devtools::load_all()后跟devtools::build(binary=TRUE),然后是devtools::install()

    [1] "DESCRIPTION" "examples"    "help"        "html"       
    [5] "INDEX"       "Meta"        "NAMESPACE"   "prof"       
    [9] "R"           "tests"      
    

    解压缩.zip文件并检查目录内容:

    [1] "DESCRIPTION" "examples"    "help"        "html"       
    [5] "INDEX"       "MD5"         "Meta"        "NAMESPACE"  
    [9] "prof"        "R"    
    
  5. 考虑到这一点,我也有理由相信,在构建软件包后,我仍然没有完全理解devtools::build()devtools::install()install.packages()之间的差异; - )

    会话信息:

    R version 3.1.1 (2014-07-10)
    Platform: x86_64-w64-mingw32/x64 (64-bit)
    
    locale:
    [1] LC_COLLATE=German_Germany.1252 
    [2] LC_CTYPE=German_Germany.1252   
    [3] LC_MONETARY=German_Germany.1252
    [4] LC_NUMERIC=C                   
    [5] LC_TIME=German_Germany.1252    
    
    attached base packages:
    [1] compiler  stats     graphics  grDevices utils    
    [6] datasets  methods   base     
    
    other attached packages:
    [1] mypackage_0.1.0.1
    
    loaded via a namespace (and not attached):
     [1] devtools_1.5    digest_0.6.4    evaluate_0.5.5 
     [4] httr_0.4        memoise_0.2.1   packrat_0.4.0.5
     [7] parallel_3.1.1  RCurl_1.95-4.3  stringr_0.6.2  
    [10] tools_3.1.1     whisker_0.3-2  
    

    我正在使用RStudio 0.98.978

1 个答案:

答案 0 :(得分:5)

对我有用的是使用devtools::build制作源包,然后install.packages

devtools::build() %>% 
  install.packages(repos = NULL, type = "source")

使用devtools::build(binary = TRUE)不起作用,因为它会调用R CMD INSTALL而不是R CMD build,而忽略.Rbuildignore个文件。同样,RStudio" Build&刷新"按钮使用R CMD INSTALL