【发布时间】:2020-10-15 02:01:58
【问题描述】:
在任何 makefile 中运行任何 git 命令时遇到重复出现的权限错误,我已经慢慢发疯了:
例如运行 make :
a:
git --version
将导致:
make: git: Permission denied
make: *** [makefile:<line number>: <target>] Error 127
观察:
- 即使是最琐碎的命令也会发生,例如混帐状态
- 以 root 身份运行时发生
- 无论目录和文件权限如何都会发生
- 如果直接运行,给定的命令运行没有问题
- 重新格式化并重新安装我的操作系统后,问题消失了,但几个月后又出现了
- BSD bmake 似乎可以正常工作
环境:
- Arch Linux x86-64
- GNU Make v4.3
- Git v2.26.2
我在工作中广泛使用 makefile,这个问题慢慢变得越来越令人沮丧。如果有人对如何解决此问题有任何见解或建议,将不胜感激。谢谢。
【问题讨论】:
-
运行:
which git | xargs ls -l并发布输出。看起来可执行标志未设置。以 root 身份运行不会克服缺少可执行标志的问题。您可以直接运行git的事实似乎表明make看到的git副本与您不同。 -
-rwxr-xr-x 1 root root 3143720 Apr 20 14:22 /usr/bin/git-- 是的,它不是别名或任何东西,似乎设置了可执行位 -
你能把同样的
which命令添加到makefile吗?看看是不是git的同一个副本。 -
这是个好主意,但位置相同
-
尝试将
git --version放入您的makefile。这比git status更简单。 status 命令需要访问文件系统。
标签: git makefile permissions