web-dev-qa-db-fra.com

Brew Doctor - "attention: des fichiers d’entête non identifiés ont été trouvés dans / usr / local / include"?

Quand je cours brew doctor, l'erreur suivante est générée

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

Serait-il prudent de supprimer ces fichiers? Quel est le moyen optimal de résoudre cet avertissement?

70
Prefix

On dirait que vous avez installé curl et nodejs sans utiliser homebrew.

Vous avez deux options:

  1. Ne faites rien sauf souvenez-vous-en pour toujours, de sorte que vous ne pensiez pas qu'ils viennent d'Homebrew et ne vous demandiez pas pourquoi Homebrew se plaignait.
  2. Supprimez-les et installez nodejs et curl de homebrew.

1 est le moyen facile, jusqu'à ce que ce ne soit pas.

Je recommande # 2 car il est probable qu'à l'avenir, vous installiez quelque chose à partir de homebrew qui dépend de curl et/ou d'un noeud et homebrew tentera d'installer ces dépendances. Lors de la création à partir des sources, des en-têtes incorrects peuvent être utilisés et des bibliothèques non concordantes peuvent être liées. Ce n'est pas amusant à déboguer.

Si ces fichiers d'en-tête non homebrew existent pour une raison quelconque et que vous compilez des logiciels avec eux, vous pourrez probablement les restaurer si vous en avez besoin. Si vous ne construisez pas de logiciel avec eux, vous n'en avez pas besoin. Allez-y et supprimez-les pour l'instant.

70
jrwren

Vous pouvez ignorer les vérifications des en-têtes parasites afin de voir plus facilement si des problèmes autres que le nœud/npm ne fonctionnent pas correctement avec homebrew

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

Il peut être prudent de laisser ces fichiers en place, sauf si vous rencontrez des problèmes de génération ou de lien avec d'autres formules Homebrew; brew doctor la sortie est consultative et non normative.

Si vous pensez ne pas avoir de raison de vous baser sur les versions de curl ou node dans/usr/local, vous pouvez supprimer ces fichiers d'en-tête. vous pouvez toujours réinstaller la version la plus récente avec Homebrew.

2
Tim Smith