FreeBSD 上的 Gmake:exec:“clang”:在 $PATH 中找不到可执行文件

FreeBSD 上的 Gmake:exec:“clang”:在 $PATH 中找不到可执行文件

我正在尝试在 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
...

查找(1)

$ find /usr -name "clang"
/usr/bin/clang
...

相关内容