Подтвердить что ты не робот

Brew doctor - "предупреждение: нераскрытые файлы заголовков были найдены в /usr/local/include "?

Когда я запускаю 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

Можно ли удалить эти файлы? Каков оптимальный способ разрешения этого предупреждения?

4b9b3361

Ответ 1

Похоже, вы установили curl и nodejs без использования homebrew.

У вас есть два варианта:

  • Не делайте ничего, кроме как помните это навсегда, чтобы вы не думали, что они из доморощенного, и задаются вопросом, почему доморощенный жалуется.
  • Удалите их и установите nodejs и закрутите с homebrew.

1 - это простой способ, пока это не будет.

Я рекомендую # 2, потому что, скорее всего, в будущем вы будете устанавливать что-то из homebrew, которое зависит от завитка и/или node, и доморощенный попытается установить эти зависимости. При построении из исходного кода неправильные заголовки могут использоваться и связывать библиотеки-рассогласования. Это не интересно отлаживать.

Если те заголовки, которые не являются домашними, по какой-то причине, и вы с ними компилируете программное обеспечение, вы, вероятно, сможете вернуть их, если они вам понадобятся. Если вы не создаете с ними программное обеспечение, вам они не нужны. Идем дальше и удаляем их сейчас.

Ответ 2

Может быть безопасно оставить эти файлы на месте, если вы не столкнетесь с проблемами сборки или ссылок с другими формулами Homebrew; Выход brew doctor является рекомендательным, а не нормативным.

Если вы не думаете, что у вас есть причина построить против версий curl или node в /usr/local, вы можете удалить эти файлы заголовков; вы всегда можете переустановить новую версию позже с помощью Homebrew.

Ответ 3

Вы можете пропустить проверки бродячих заголовков, чтобы было легче увидеть, есть ли проблемы, отличные от node/npm, которые не играют хорошо с homebrew

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

Ответ 4

У меня была такая же проблема, и это ответ администратора, опубликованного на официальном репозитории Homebrew на github: "О'кейо, чтобы игнорировать это, если у вас нет проблем с установкой программного обеспечения с Homebrew. brew doctor - это инструмент отладки для нас, чтобы помочь отладить, если у вас есть проблемы."

Ссылка: https://github.com/Homebrew/homebrew/issues/32655

Ответ 5

Это решение работало для меня!

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.*