2014-08-28 3 views
24

Я хотел бы, чтобы исключить следующие RESSOURCES при создании пакета R с помощью .Rbuildignore:Правильное использование Devtools и/или RStudio относительно .Rbuildignore

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

Но я запутался, как иногда кажется работать, а иногда и нет.

Я предполагаю, что он должен делать ли я с помощью devtools::build(), devtools::install() или что-то точно происходит при ударе SHFT + CTRL + B (или Построить >> Строительство и Обновить) в RStudio.

Единственные релевантные ресурсы, которые я мог найти, были this post, ведущие к this issue, но я все еще не полностью его получаю.

Это то, что я пробовал:

  1. нагрузки все следуют Строить и Обновить с помощью клавиш RStudio:

    Это то, что я вижу при вызове list.files(file.path(R.home("library"), "mypackage")):

    [1] "DESCRIPTION" "examples" "help"  "html"  
    [5] "INDEX"  "Meta"  "NAMESPACE" "prof"  
    [9] "R"  
    
  2. Загрузить все следует Строить и 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"  
    

Глядя на это также дает мне основания полагать, что я до сих пор не в полной мере понять различия между devtools::build(), devtools::install() и install.packages() после того, как пакет был построен ;-)

Session Info:

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

Вы пытались добавить файл '.Rbuildignore', используя регулярные выражения? 'devtools :: use_build_ignore (« ваш_файл »)' – JohnCoene

+0

https://support.rstudio.com/hc/en-us/community/posts/200654836-Build-and-Reload-Package-does-not-respect-Rbuildignore –

ответ

5

то, что работает для меня, чтобы использовать devtools::build, чтобы сделать пакет источника, то install.packages.

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

Использование devtools::build(binary = TRUE) не работает, так как он вызывает R CMD INSTALL, а не R CMD build, который игнорирует .Rbuildignore файлы. Аналогично, кнопка «Build Reload» RStudio использует R CMD INSTALL.