2012-11-01 73 views
25

我有兴趣在构建和安装软件包时不包括两个目录inst\docsinst\examples。我知道一个简单的方法就是将docsexamples移动到根目录,它们不会被安装。但是,由于其他原因,我想让他们保留在inst之内。Rbuildignore和不包含目录

我尝试添加下列行来.Rbuildignore

inst/docs 
inst/examples 

我使用RStudio v 0.97和devtools构建和从源安装软件包。但是,当我这样做时,我仍然看到inst\docsinst\examples已安装。我尝试了不同的正则表达式,但似乎没有任何工作。

我做错了什么?

+1

我有同样的问题。在devtools中使用'install'时,文件夹被忽略。从命令行构建和安装时,文件夹将被忽略。但是当使用RStudio中的'Build&Reload'按钮时,文件夹就会被安装。看起来像一个RStudio问题 – Dason

+1

你是对的。我使用'devtools:install'并且它工作得很完美。如果别人有同样的问题,我会在这里留下这个问题。 – Ramnath

+1

@Dason如果你打算留下来,最好让别人根据Dason的评论写出真实的答案,这样才能被接受。 – joran

回答

15

这似乎是RStudio的一个问题。从devtools包使用install似乎会导致文件夹被忽略。直接从命令行构建和安装似乎也会导致文件夹被忽略。然而,在RStudio中'Build & Reload'按钮似乎没有考虑到这些文件夹的.Rbuildignore。

+1

你是否提出过rstudio的支持问题? – hadley

+1

还没有。但我会。 – Ramnath

+4

发表[issue](http://support.rstudio.org/help/discussions/problems/3771-build-and-reload-package-does-not-respect-rbuildignore?unresolve=true)与RStudio – Ramnath

2

旧的帖子,但它仍然似乎是建立二进制包时的问题。下面的hack似乎可以工作(即构建源代码包,然后从该源代码包构建二进制文件)。

f <- devtools::build("mypackage") 
system(paste0("R CMD INSTALL --build ", f)) 
6

你可以做

devtools::use_build_ignore(c("yourfolder1", "yourfolder2", "yourfile"))