R CMD安装--生成包-->&引用;“小插曲缺失”;

R CMD安装--生成包-->&引用;“小插曲缺失”;,r,build,binary,package,vignette,R,Build,Binary,Package,Vignette,问题: C:\>Rcmd.exe安装--build--library=C:/Users/local\u aphalo/Documents/R/win library/3.0光生物学 C:\>Rcmd.exe安装--build--library=C:/Users/local\u aphalo/Documents/R/win library/3.0 photobiology\u 0.2.6.tar.gz 第一个命令(由RStudio使用)构建一个缺少渐晕图的ZIP文件 第二个命令构建一个包含渐晕图的

问题:
C:\>Rcmd.exe安装--build--library=C:/Users/local\u aphalo/Documents/R/win library/3.0光生物学

C:\>Rcmd.exe安装--build--library=C:/Users/local\u aphalo/Documents/R/win library/3.0 photobiology\u 0.2.6.tar.gz

第一个命令(由RStudio使用)构建一个缺少渐晕图的ZIP文件

第二个命令构建一个包含渐晕图的ZIP

使用
R CMD
而不是
Rcmd.exe
没有区别。.tar.gz是在试图从RStudio(使用Rcmd.exe build photobiology)中完全相同的源文件构建.zip文件之前立即构建的

vignette使用knitr在.Snw文件中编码,文档和名称空间使用ROxygen2。问题发生在我尝试构建的所有包上,但它们的编码非常相似。其中只有一个使用Rcpp

当从RStudio中安装要使用的包时,从.tar.gz安装vignettes就可以了。如果从.zip安装,是否安装vignettes取决于.zip文件是否包含vignettes(这取决于此消息顶部的两个命令中用于生成.zip文件的命令)

我正在使用R3.0.1,几天前还尝试了几个R3.0.1补丁版本。我主要使用Windows7(32位和64位),我在Ubuntu 64位下试过一次,问题是可以重现的。我在使用RStudio(0.97和0.98)时第一次注意到这个问题,并在RStudio论坛上发布了一条消息,但几周内没有收到任何答复。我在RStudio网站论坛上至少找到了另一篇关于这个问题的相对较老的帖子,但没有得到回复。今天,我进一步研究了一下,这个问题显然与RStudio无关,因为我可以通过命令行重现它

问题是:这种行为是一种特征吗?虫子?或者我在使用的命令中只缺少一个选项?

当然,通过使用.tar.gz文件来构建.zip文件,我可以在命令行轻松地解决这个问题,但是我认为构建包的首选方法是只提供包名作为参数


感谢您对该问题根源的深入了解。

我认为这是一个功能:

  • 如果您是从源代码安装,则始终会生成渐晕图

  • 如果您是从二进制文件安装的,则它们不是生成的,并且只有在生成二进制文件时生成时才可用


这种方法意味着您可以将vignette以二进制包的形式分发给那些可能无法从源代码构建它们的人。

是的,这很有意义。但是我正在构建一个二进制文件,从屏幕上的输出来看,包似乎是从源代码安装的,这是这个过程的一部分,但是如果源代码还没有打包在.tar.gz文件中,那么源代码的安装将不包括渐晕图,即使它们作为.pdf文件存在于我的“工作包源代码”的渐晕图文件夹中。因此,我想知道的是,除了使用.tar.gz进行安装之外,是否有其他方法可以强制将vignettes文件包含在.zip文件中。@PedroAphalo您是如何构建zip的?通过RStudio菜单“Build>More>Build binary package”,在项目选项中不添加额外的开关,在这种情况下,RStudio将库正确设置为我的本地用户库以进行安装。从RStudio内部打开Windows shell并执行上述命令时,或者从RStudio外部使用Windows shell并设置RTOOL路径并添加--library开关时,也会发生同样的情况。我准备了一个简单的例子。我想我的信息是误导性的。进一步检查表明,如果我将vignette的.pdf文件复制到包的inst/doc文件夹中,它将包含在二进制文件中。R CMD build生成渐晕图,但将它们放在库中安装的软件包副本的inst/doc中。R CMD INSTALL——build从源代码而不是从安装的库生成二进制文件,因此在inst/doc中找不到任何文件。R CMD INSTALL——build是安装在库中的build的副本,因此包含从vignettes文件夹中的.Rnw生成的.pdf文件。