R包`inst /`

时间:2017-11-02 19:45:25

标签: r

我正在写一个R包(供内部使用,永远不会在CRAN上)。我的一个函数调用包含node.js命令的shell脚本。我已将文件放在inst/node_script.sh中,以便在安装软件包时我可以使用

调用脚本
system(system.file("./node_script.sh", package = "mypackage"))

这在我的开发机器上很有用。但是当我在测试计算机上安装软件包时,node_script.sh位于正确的位置,但它会丢弃可执行模式,因此我无法在没有chmod +x ...的情况下运行该脚本。三个问题:

  • 如何通过安装保留脚本文件的文件权限?
  • 之后是否有一种干净的方式来设置它们?我正在使用devtools::install_github
  • 这是最好的解决方法吗?

2 个答案:

答案 0 :(得分:2)

最好的方法是使用清理脚本cmake

并使用 - clean 参数调用安装,例如devtools::install_github("foo/bar",args=c("--clean"))

如果你的/ tmp有像我这样的 noexec 标志,那你就不走运了。

以下是相关问题https://cran.r-project.org/doc/manuals/r-release/R-exts.html#Configure-and-cleanup

答案 1 :(得分:1)

我通过在通话之前立即加入'chmod'命令来实现这种功能。

DateTime dt2 = DateTime.ParseExact("201702070001", "yyyyMMddHHmm", CultureInfo.InvariantCulture);

对我而言似乎非常讨厌,而且我喜欢另类。