R包“exec”或“tools”目录中是否有任何特殊功能?

时间:2014-09-29 16:35:42

标签: r

我正在尝试开发一个R包,其中包含一些以前编译的可执行程序及其支持库。 (我知道这是不好的形式,但它是供内部使用的。)

我的问题:特殊的exectools目录在R中是否有任何特殊功能?

文档似乎很少。这是我到目前为止所发现的:

来自here

  • exec中包含的文件在安装时标记为可执行文件
  • exec中的子目录将被忽略
  • 很少使用
  • exec(我对CRAN的调查显示tools很少使用)
  • tools出于配置目的?

这些目录是否提供了从创建inst/programs目录无法获得的任何目录?

2 个答案:

答案 0 :(得分:4)

据我所知,这是exectools目录提供的功能。

exec

R-exts来自hadley

  

子目录exec可能包含程序包所需的其他可执行脚本,通常是shell,Perl或Tcl等解释程序的脚本。目前,这种机制仅由极少数的软件包使用。注意:只安装exec下的文件(而不是目录)(名称以点开头的文件将被忽略),并且它们都在POSIX平台上标记为可执行文件(模式755,由'umask'审核)。另请注意,这不适用于可执行程序,因为某些平台(包括Windows)支持使用相同安装包目录的多个体系结构。

我发现的

exec功能

  • 在POSIX平台(* nix,os x)上,exec中的文件将被标记为可执行文件。
  • 软件包中不包含exec的子目录,只有exec root
  • 中的文件
  • (注意,它可能包含二进制可执行文件,但没有架构/平台处理

tools

来自R-exts

  

子目录工具是配置期间所需辅助文件的首选位置,也需要重新创建脚本的源(例如,用于autoconf的M4文件)。

我发现的

tools功能

  • tools用于保存在程序包编译时使用的文件
  • 包含的所有文件都以递归方式复制到source * .tar.gz包中(包括子目录)
  • tools未包含在程序包的最终编译形式中。所有内容都被删除

答案 1 :(得分:2)

[R-exts]有这样的说法:

  

子目录exec可能包含其他可执行脚本   包需求,通常是解释器的脚本,如shell,   Perl,或Tcl。这种机制目前只有极少数人使用   包。注意:只有exec下的文件(而不是目录)   安装(以及以点开头的名称将被忽略),和   它们都被标记为可执行文件(模式755,由'umask'审核)   POSIX平台。另请注意,这不适用于可执行文件   程序,因为一些平台(包括Windows)支持多个   使用相同安装包目录的体系结构。

如果仅供内部使用,最后一个音符很可能不适用于您。

尽管如此,我建议避免滥用任何可能不适用于您的情况的现有惯例,而是使用inst/toolsinst/bin