Brew医生 – “警告:在/ usr / local / include中find了未引用的头文件”?

当我运行brew doctor ,会出现以下错误

 Warning: Unbrewed header files were found in /usr/local/include. If you didn't put them there on purpose they could cause problems when building Homebrew formulae, and may need to be deleted. Unexpected header files: /usr/local/include/curl/curl.h /usr/local/include/curl/curlbuild.h /usr/local/include/curl/curlrules.h /usr/local/include/curl/curlver.h /usr/local/include/curl/easy.h /usr/local/include/curl/mprintf.h /usr/local/include/curl/multi.h /usr/local/include/curl/stdcheaders.h /usr/local/include/curl/typecheck-gcc.h /usr/local/include/node/ares.h /usr/local/include/node/ares_version.h /usr/local/include/node/nameser.h /usr/local/include/node/node.h /usr/local/include/node/node_buffer.h /usr/local/include/node/node_internals.h /usr/local/include/node/node_object_wrap.h /usr/local/include/node/node_version.h /usr/local/include/node/openssl/opensslconf.h /usr/local/include/node/uv-private/ngx-queue.h /usr/local/include/node/uv-private/stdint-msvc2008.h /usr/local/include/node/uv-private/tree.h /usr/local/include/node/uv-private/uv-bsd.h /usr/local/include/node/uv-private/uv-darwin.h /usr/local/include/node/uv-private/uv-linux.h /usr/local/include/node/uv-private/uv-sunos.h /usr/local/include/node/uv-private/uv-unix.h /usr/local/include/node/uv-private/uv-win.h /usr/local/include/node/uv.h /usr/local/include/node/v8-debug.h /usr/local/include/node/v8-preparser.h /usr/local/include/node/v8-profiler.h /usr/local/include/node/v8-testing.h /usr/local/include/node/v8.h /usr/local/include/node/v8stdint.h /usr/local/include/node/zconf.h /usr/local/include/node/zlib.h 

删除这些文件是否安全? 什么是解决这个警告的最佳方法?

它看起来像你没有使用自制软件安装curl和nodejs。

你有两个select:

  1. 除了永远记住这些,别无所求,所以你们不要以为自己是自制的,不知道为什么自制软件在抱怨。
  2. 删除它们并安装nodejs和从自制curl。

1是简单的方法,直到它不是。

我推荐#2,因为它很可能,在未来,你会从自制的东西,这取决于curl和/或节点和自制将尝试安装这些依赖项的东西。 从源代码构build时,可能会使用错误的头文件并链接不匹配的库文件。 这不是有趣的debugging。

如果那些非自制的头文件是有原因的,而且你正在编译软件,那么你可能会把它们放回去,如果你需要的话。 如果你不用他们的软件,那么你不需要他们。 继续,现在删除它们。

你可以跳过stream水头检查,以便更容易看到除node / npm之外是否有其他问题不能很好地与自制

 brew doctor `brew doctor --list-checks | grep -v stray_headers` 

除非您遇到与其他自制软件公式的构build或链接问题,否则保留这些文件可能是安全的; brew doctor产量是咨询性的,不是规范性的。

如果你认为你没有理由在/ usr / local中创buildcurl或node的版本,你可以删除这些头文件; 你可以随时用Homebrew重新安装最新版本。

我有同样的问题,这是一个pipe理员在github官方homebrew repo上发布的答案:“除非你在使用Homebrew安装软件时遇到问题,否则可以忽略。brew doctor是一个debugging工具,可以帮助我们debugging你有问题。“

链接: https : //github.com/Homebrew/homebrew/issues/32655

这个解决scheme为我工作!

 sbom -f -l -s -pf /var/db/receipts/org.nodejs.pkg.bom | while read f; do sudo rm /usr/local/${f}; done sudo rm -rf /usr/local/lib/node /usr/local/lib/node_modules /var/db/receipts/org.nodejs.*