我可以通过多种方式找到名为 git
的可执行文件(基本上相当于 which git
)。但我所知道的所有解决方案都被 OS X 的假 /usr/bin/git
程序击败,该程序是一个提供安装 Xcode 的 git
对话框的钩子(Hook)(我'随后将其称为 OS X git 安装程序。)
我想检测这种情况,并将 git
视为未找到(如果这是唯一的情况)。我不想执行它来确定这一点,因为我不想触发安装程序对话框。
上下文:我想实现以下内容(作为更大的软件安装过程的一部分):
- 确定是否安装了“真正的”git(即,名为
git
的可执行文件,而不是 OS X git 安装程序,位于PATH
上),< - 如果是,请承认并尊重它并继续(我已经弄清楚了这部分),
- 如果不是,请安装 git 项目中的一个(我已经弄清楚了这部分)。
如果需要的话,我很乐意解析 PATH 并自己搜索可执行文件,如果我能找到一种忽略 OS X git 安装程序的方法。如果启发法几乎总是正确的话,我对它感到满意;我不需要处理边缘情况(比如有人创建了一个名为 git
的可执行文件或脚本,但它与 git
不兼容)。
确定系统上是否安装了非 OS X git 安装程序 git
且无需执行 的最佳(最可靠,其次是最方便)方法是什么?/usr/bin/git
(并触发安装程序对话框)?
最佳答案
没有最好的办法。有些东西无法自动发现,我当然可以拥有 $HOME/bin/git
,它不是 git
,但在我的路径中。
你可以做的就是将 git 的路径作为一个可配置项,并具有合理的默认值,并很好地记录它。 git
程序本身会执行此操作;它将在 few different places 中查找配置项最后允许 git --file configfile 作为最后一个选项来覆盖。
关于git - 自动化脚本确定 git 是否真正安装在 OS X 上的最佳方法,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/33272418/