2017-06-15 88 views
3

在大多数脚本语言中(例如Ruby,Python等),包管理器(例如gem,pip等)可以将脚本安装为可执行文件并将它们链接到PATH变量中引用的目录(例如/ usr/local/bin)。这将这些可执行脚本转换为shell命令,用户可以以独立方式在编程界面之外运行。使用R包安装可执行脚本

我想知道在R中是否也有这种可能性。鉴于R使用标准Makefiles,我想必须有一种方法可以这样做,尽管它是非标准的。我已经知道我们可以在R脚本中读取命令行参数using the docopt package。但有没有办法在安装软件包时将脚本安装为可执行文件?

在这个话题上有领先者会很棒,但是一个来自CRAN的单个工作例子也足够了。

回答

2

短(而且很伤心)答案:你不能。但请继续阅读。

推理:R只会将封装内容写入其自己的.libPaths()目录(或第一个以防万一),或者由用户给出的目录。

因此,说,/usr/local/bin/是根本无法触及。这是一个可行的战略。

这也是相当悲伤 - 我写littler(也CRAN page)正是为此目的:可执行R脚本。我们有几十个在工作的人从cron工作调用。那么我们该怎么办? A 一次性从包含脚本的软件包的scripts/子目录到/usr/local/bin的软链接。在软件包升级时,链接将作为软链接继续存在。

这就是我为例如所有的examples shipping with littler和更多来自其他包。他们中的许多人也使用docopt

+0

但是,在R的'.libPaths()'下面有一个标准的bin路径,我们可以为所有路径添加路径,然后将所有可执行文件链接到那里?这就是'pip'和'gem'功能。 – retrography

+0

只需展开'.libPaths()':它是所有包目录中的一个级别。 –