git钩子期间缺少二进制文件



让我们像这样为git设置一个post-receive钩子:

#!/bin/sh
git --work-tree=/path/to/www --git-dir=/path/to/git/test_CI.git checkout -f
export PATH=$PATH:/usr/bin #(<- this export does not help much)
yarn build

第一行运行良好,但yarn build失败,因为钩子根本不知道纱线。(运行yarn在我的主机终端工作完美,虽然。主机运行的是Ubuntu 18.04。顺便说一下。

which yarn告诉我纱线的确切位置:

/home/…/.nvm/版本/节点/v12.18.3/bin/纱

我可以将它用于钩子。该路径包含当前yarn的版本号,一旦系统更新,这将导致其他问题。

Plus、nvm、node或next等将无法在next中找到。所以这不是一个聪明的解决方法。

如何使所有在终端中可以访问的东西(不仅仅是yarn)可用于钩子?

export PATH=$PATH:/usr/bin #(<- this export does not help much)

这添加了/usr/bin,它应该已经是$PATH开始的一部分,所以…这没什么用。

我会检查,如nvm-sh/nvm问题355所示,如果你可以有~/.nvm/current/符号链接(符号链接),为了使$PATH保持不变,即使在npm更新时。

最新更新