【发布时间】:2013-02-21 05:37:39
【问题描述】:
我正在尝试使用 R 中的 git 通过 curl 向 github 发送命令(即,我正在尝试使 this question 作为 R 函数工作)。如果我能找到 git.exe 的位置,我就可以做到这一点。我以为我可以使用Sys.which,但它不起作用。
> Sys.which("git")
git
""
但是当我这样做时,我知道文件在那里:
> system('"C:\\Program Files (x86)\\Git\\bin\\git" --version')
git version 1.7.11.msysgit.1
如何在 Windows 上找到 git.exe? (或者我可能把整个问题都搞错了,就像发生在我身上的那样here)
【问题讨论】:
-
which是一个 *nix 命令。 Windows 上的Sys.which只会查看环境路径,因此不会神奇地找到文件。您是否希望在 git 安装在不同位置的机器上执行此操作? -
也许看看 hadley 在
devtools: github.com/hadley/devtools/blob/master/R/install-git.r 中做了什么。检查底部的git_path函数。 -
如果你总是想找到它,把
bin目录路径放在%PATH%中(可能在启动链接中)。这甚至是可移植的,因为那时您实际上可以使用Sys.which。您还可以寻找最常见安装(Github fW、msysgit、Git for Windows)的注册表项。 -
一般来说,正确设置路径是用户的责任 - 如果您尝试手动执行此操作,您将进入一个受伤的世界。有时这是值得的,但真的很难。例如,阅读 devtools 用于在 Windows 上查找 Rtools 的近 260 行代码:github.com/hadley/devtools/blob/master/R/rtools.r
-
@Hadley 我认为你的建议很好。每个人都提到了这一点,但你站出来说:-)