![FreeBSD 上的 Gmake:exec:“clang”:在 $PATH 中找不到可执行文件](https://linux22.com/image/173529/FreeBSD%20%E4%B8%8A%E7%9A%84%20Gmake%EF%BC%9Aexec%EF%BC%9A%E2%80%9Cclang%E2%80%9D%EF%BC%9A%E5%9C%A8%20%24PATH%20%E4%B8%AD%E6%89%BE%E4%B8%8D%E5%88%B0%E5%8F%AF%E6%89%A7%E8%A1%8C%E6%96%87%E4%BB%B6.png)
我正在尝试在 PfSense 2.4.5 上安装 Filebeat(elasticsearch 日志传送)。我遵循以下指示:https://blog.securitybits.io/2019/12/beats-7.5.0-on-pfsense-2.4.4/在make步骤中,我遇到了问题:
# cd filebeat/
# gmake
go build -ldflags "-X github.com/elastic/beats/libbeat/version.buildTime=2020-05-18T08:05:30Z -X github.com/elastic/beats/libbeat/version.commit=6a23e8f8f30f5001ba344e 4e54d8d9cb82cb107c"
# github.com/elastic/beats/vendor/github.com/DataDog/zstd
exec: "clang": executable file not found in $PATH
# github.com/elastic/beats/vendor/github.com/elastic/gosigar
exec: "clang": executable file not found in $PATH
gmake: *** [../libbeat/scripts/Makefile:121: filebeat] Error 2
我不了解 docker 和 golang,所以如果有人知道修复该问题的解决方案,请与我分享。我的 pfSense 盒子上非常需要 filebeat。十分感谢
答案1
您需要学习的第一个也是最重要的一课是根据错误消息采取行动。距离您提出另一个问题还不到 14 小时回答直接在错误消息中。社区很乐意提供帮助,并且非常欢迎初学者。但我们会为您做出最小的努力。
说明你不理解哪些部分以及你自己尝试过什么是至关重要的。 “我需要 filebeat”是不够的。我们很乐意帮助您了解问题——而不是作为免费的一般支持渠道。
尝试关注给出的第一个错误:
exec: "clang": executable file not found in $PATH
如果你不知道 - 那么学习命令其中(1)。这将搜索您$PATH
以找到文件。
$ which clang
/usr/bin/clang
根据您看到的错误消息,您可能找不到任何内容。但这是一个重要的测试 - 也许是gmake
在不同的环境和不同的$PATH
.
然后我会检查你的样子$PATH
。
$ echo $PATH
/sbin:/bin:/usr/sbin:/usr/bin:/usr/games:/usr/local/bin:/usr/X11R6/bin:/home/johndoe/bin
我们必须学习的下一个工具是其中(1)。这也会在您的$PATH
.
$ whereis clang
clang: /usr/bin/clang /usr/share/man/man1/clang.1.gz /usr/src/usr.bin/clang
如果您仍然没有找到,clang
那么看起来它根本没有安装。它默认安装在最新的 FreeBSD 系统(2015 年发布的 10.x)上。这使我相信您没有遵循您自己指定的说明。我的猜测是,您正在直接在安装了有限工具集的 pfsense 盒子上工作。这就是为什么我们经常指定 的输出uname -a
。
您可以通过搜索完整系统来更进一步。看一下定位(1)
$ locate clang
/usr/bin/clang
/usr/bin/clang++
/usr/bin/clang-cpp
/usr/bin/clang-tblgen
/usr/lib/clang
/usr/lib/clang/8.0.1
...
$ find /usr -name "clang"
/usr/bin/clang
...