【问题标题】:Is there any special functionality in R package "exec" or "tools" directories?R 包“exec”或“tools”目录中是否有任何特殊功能?
【发布时间】:2014-09-29 16:35:41
【问题描述】:

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

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

文档似乎很少。到目前为止,这是我想出的:

来自here

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

这些目录是否提供了我无法通过创建 inst/programs 目录获得的任何内容?

【问题讨论】:

  • 好的,通过玩耍,我发现一旦构建或安装了包,tools包含在内。它只能在构建过程中使用,然后被删除。
  • 创建inst/programs 目录是否会自动将其中存储的文件标记为安装时可执行?如果不是,那么那里exec的一些特殊功能...
  • 是的,这绝对是您使用exec获得的功能

标签: r


【解决方案1】:

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

子目录 exec 可以包含额外的可执行脚本 包需求,通常是解释器的脚本,例如 shell, Perl 或 Tcl。这种机制目前只有极少数人使用 包。注意:只有 exec 下的文件(而不是目录)是 已安装(名称以点开头的将被忽略),并且 它们都被标记为可执行(模式 755,由“umask”主持) POSIX 平台。还要注意,这不适合可执行文件 程序,因为某些平台(包括 Windows)支持多个 使用相同安装包目录的架构。

如果仅用于内部使用,最后一条注释很可能不适用于您。

不过,我建议避免滥用任何可能不适用于您的情况的现有约定,而是使用inst/toolsinst/bin

【讨论】:

  • 谢谢哈德利。很高兴知道没有一种特殊的、成熟的方法可以做到这一点。我将在后续帖子中总结toolsexec 的功能。
【解决方案2】:

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

exec

R-extshadley

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

exec我发现的功能

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

tools

来自R-exts

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

tools我发现的功能

  • tools 是保存包编译时使用的文件
  • 包含的所有文件都递归复制到源 *.tar.gz 包(包括子目录)中
  • tools 不包含在包的最终编译形式中。删除所有内容

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2021-04-20
    • 1970-01-01
    • 2012-07-15
    • 2011-07-03
    • 1970-01-01
    • 2021-08-20
    相关资源
    最近更新 更多