Logo Questions Linux Laravel Mysql Ubuntu Git Menu
 

Brew doctor - "warning: unbrewed header files were found in /usr/local/include"?

When I run brew doctor, the following error is thrown

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 

Would it be safe to delete these files? What is the optimal way to resolve this warning?‏‏‏‏‏‏

like image 794
tdc Avatar asked Oct 16 '14 14:10

tdc


2 Answers

It looks like you installed curl and nodejs without using homebrew.

You have two options:

  1. Do nothing except remember this forever, so that you don't think they are from homebrew and wonder why homebrew is complaining.
  2. Remove them and install nodejs and curl from homebrew.

1 is the easy way, until it isn't.

I recommend #2 because it is likely, in the future you will install something from homebrew which depends on curl and/or node and homebrew will attempt to install those dependencies. When building from source, wrong headers may get used and mismatch libraries being linked. This is not fun to debug.

If those non homebrew header files are there for a reason and you are compiling software with them, then you are probably able to put them back if you need them. If you aren't building software with them, then you don't need them. Go ahead and delete them for now.

like image 140
jrwren Avatar answered Sep 20 '22 15:09

jrwren


You can skip the stray header checks to make it easier to see if there are issues other than node/npm not playing nicely with homebrew

brew doctor `brew doctor --list-checks | grep -v stray_headers` 
like image 21
testuser Avatar answered Sep 20 '22 15:09

testuser