Homebrew Warnings? - macos

Just installed Homebrew but for some reason when I did "brew doctor" I kept getting these warnings and when i run the commands chown that it gives me, nothing happens...
> brew doctor
Please note that these warnings are just used to help the Homebrew maintainers
with debugging if you file an issue. If everything you use Homebrew for is
working fine: please don't worry and just ignore them. Thanks!
Warning: /usr/local/include isn't writable.
This can happen if you "sudo make install" software that isn't managed by
by Homebrew. If a formula tries to write a file to this directory, the
install will fail during the link step.
You should probably `chown` /usr/local/include
Warning: /usr/local/lib isn't writable.
This can happen if you "sudo make install" software that isn't managed by
by Homebrew. If a formula tries to write a file to this directory, the
install will fail during the link step.
You should probably `chown` /usr/local/lib
Warning: /usr/local/lib/pkgconfig isn't writable.
This can happen if you "sudo make install" software that isn't managed by
by Homebrew. If a formula tries to write a file to this directory, the
install will fail during the link step.
You should probably `chown` /usr/local/lib/pkgconfig
Warning: /usr/local/sbin isn't writable.
This can happen if you "sudo make install" software that isn't managed by
by Homebrew. If a formula tries to write a file to this directory, the
install will fail during the link step.
You should probably `chown` /usr/local/sbin
Warning: Some directories in /usr/local/share/man aren't writable.
This can happen if you "sudo make install" software that isn't managed
by Homebrew. If a brew tries to add locale information to one of these
directories, then the install will fail during the link step.
You should probably `chown` them:
/usr/local/share/man/man8
Warning: Unbrewed dylibs were found in /usr/local/lib.
If you didn't put them there on purpose they could cause problems when
building Homebrew formulae, and may need to be deleted.
Unexpected dylibs:
/usr/local/lib/libntfs-3g.80.dylib
/usr/local/lib/libntfs.9.0.0.dylib
/usr/local/lib/libublio.1.dylib
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/ntfs/attrib.h
/usr/local/include/ntfs/attrlist.h
/usr/local/include/ntfs/bitmap.h
/usr/local/include/ntfs/bootsect.h
/usr/local/include/ntfs/collate.h
/usr/local/include/ntfs/compat.h
/usr/local/include/ntfs/compress.h
/usr/local/include/ntfs/debug.h
/usr/local/include/ntfs/device.h
/usr/local/include/ntfs/device_io.h
/usr/local/include/ntfs/dir.h
/usr/local/include/ntfs/endians.h
/usr/local/include/ntfs/gnome-vfs-method.h
/usr/local/include/ntfs/gnome-vfs-module.h
/usr/local/include/ntfs/index.h
/usr/local/include/ntfs/inode.h
/usr/local/include/ntfs/layout.h
/usr/local/include/ntfs/lcnalloc.h
/usr/local/include/ntfs/list.h
/usr/local/include/ntfs/logfile.h
/usr/local/include/ntfs/logging.h
/usr/local/include/ntfs/mft.h
/usr/local/include/ntfs/mst.h
/usr/local/include/ntfs/ntfstime.h
/usr/local/include/ntfs/rich.h
/usr/local/include/ntfs/runlist.h
/usr/local/include/ntfs/security.h
/usr/local/include/ntfs/support.h
/usr/local/include/ntfs/tree.h
/usr/local/include/ntfs/types.h
/usr/local/include/ntfs/unistr.h
/usr/local/include/ntfs/version.h
/usr/local/include/ntfs/volume.h
/usr/local/include/ntfs-3g/acls.h
/usr/local/include/ntfs-3g/attrib.h
/usr/local/include/ntfs-3g/attrlist.h
/usr/local/include/ntfs-3g/bitmap.h
/usr/local/include/ntfs-3g/bootsect.h
/usr/local/include/ntfs-3g/cache.h
/usr/local/include/ntfs-3g/collate.h
/usr/local/include/ntfs-3g/compat.h
/usr/local/include/ntfs-3g/compress.h
/usr/local/include/ntfs-3g/debug.h
/usr/local/include/ntfs-3g/device.h
/usr/local/include/ntfs-3g/device_io.h
/usr/local/include/ntfs-3g/dir.h
/usr/local/include/ntfs-3g/efs.h
/usr/local/include/ntfs-3g/endians.h
/usr/local/include/ntfs-3g/index.h
/usr/local/include/ntfs-3g/inode.h
/usr/local/include/ntfs-3g/layout.h
/usr/local/include/ntfs-3g/lcnalloc.h
/usr/local/include/ntfs-3g/logfile.h
/usr/local/include/ntfs-3g/logging.h
/usr/local/include/ntfs-3g/mft.h
/usr/local/include/ntfs-3g/misc.h
/usr/local/include/ntfs-3g/mst.h
/usr/local/include/ntfs-3g/ntfstime.h
/usr/local/include/ntfs-3g/object_id.h
/usr/local/include/ntfs-3g/param.h
/usr/local/include/ntfs-3g/reparse.h
/usr/local/include/ntfs-3g/runlist.h
/usr/local/include/ntfs-3g/security.h
/usr/local/include/ntfs-3g/support.h
/usr/local/include/ntfs-3g/types.h
/usr/local/include/ntfs-3g/unistr.h
/usr/local/include/ntfs-3g/volume.h
/usr/local/include/ublio.h
Warning: Unbrewed .la files were found in /usr/local/lib.
If you didn't put them there on purpose they could cause problems when
building Homebrew formulae, and may need to be deleted.
Unexpected .la files:
/usr/local/lib/libntfs-3g.la
/usr/local/lib/libntfs.la
/usr/local/lib/libublio.la
Warning: Unbrewed .pc files were found in /usr/local/lib/pkgconfig.
If you didn't put them there on purpose they could cause problems when
building Homebrew formulae, and may need to be deleted.
Unexpected .pc files:
/usr/local/lib/pkgconfig/libntfs-3g.pc
/usr/local/lib/pkgconfig/libublio.pc
Warning: Unbrewed static libraries were found in /usr/local/lib.
If you didn't put them there on purpose they could cause problems when
building Homebrew formulae, and may need to be deleted.
Unexpected static libraries:
/usr/local/lib/libntfs-3g.a
/usr/local/lib/libntfs.a
/usr/local/lib/libublio.a
Warning: Some directories in your path end in a slash.
Directories in your path should not end in a slash. This can break other
doctor checks. The following directories should be edited:
/sw/bin/ /usr/local/ /usr/local/bin/

Did you issue the "brew doctor" as root/Administrator (whatever they call it in Mac)? If not, do
su Administrator
and try again.
It seems that the user that issued the command had no permissions to write in /usr/local/ subdirectories. The Administrator should be able to write in this directory structure. If that is not the case, something is terribly wrong with your system (if you are not by any chance on a read only disk).
Your user account should - for the sake of your system's computer security - never be able to write in /usr/ or any of its subdirectories.
There may, however, be reasons to not have homebrew handled directly by the admin user. If you want to set up a non-admin user specifically for dealing with homebrew, you can for instance try this solution. In short, they suggest to create a new user (homebrew), chown the relevant /usr/ subdirectories so that they are then owned by the homebrew user (which I think is not a good idea since they should be owned by the admin user and since it would be sufficient to adjust the group permissions and add homebrew into the admin group), and remove the homebrew user from the login page. Then homebrew can be set up and later be used after issuing
su homebrew
Regarding chown (I do not think this is required for the problem at hand, but I'd like to explain it): chown should in case of failure always give an error message. The syntax is
chown <new owner> <file or directory>
with optionally the group and a number of possible options added as explained in the man page. In case that really nothing happens and no error message, the -v option can be used to cause chown to give verbose output - in that case, it should be detailed to the point of saying
ownership of <file/directory> retained as <owner>
or
changed ownership of <file/directory> from <old owner> to <new owner>

Related

Homebrew's sbin was not found in your PATH but you have installed formulae that put executables in /usr/local/sbin

when i used brew doctor in my mac terminal i get the following output
Please note that these warnings are just used to help the Homebrew maintainers
with debugging if you file an issue. If everything you use Homebrew for is
working fine: please don't worry or file an issue; just ignore this. Thanks!
Warning: Unbrewed dylibs were found in /usr/local/lib.
If you didn't put them there on purpose they could cause problems when
building Homebrew formulae, and may need to be deleted.
Unexpected dylibs:
/usr/local/lib/libtcl8.6.dylib
/usr/local/lib/libtk8.6.dylib
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/fakemysql.h
/usr/local/include/fakepq.h
/usr/local/include/fakesql.h
/usr/local/include/itcl.h
/usr/local/include/itcl2TclOO.h
/usr/local/include/itclDecls.h
/usr/local/include/itclInt.h
/usr/local/include/itclIntDecls.h
/usr/local/include/itclMigrate2TclCore.h
/usr/local/include/itclTclIntStubsFcn.h
/usr/local/include/mysqlStubs.h
/usr/local/include/odbcStubs.h
/usr/local/include/pqStubs.h
/usr/local/include/tcl.h
/usr/local/include/tclDecls.h
/usr/local/include/tclOO.h
/usr/local/include/tclOODecls.h
/usr/local/include/tclPlatDecls.h
/usr/local/include/tclThread.h
/usr/local/include/tclTomMath.h
/usr/local/include/tclTomMathDecls.h
/usr/local/include/tdbc.h
/usr/local/include/tdbcDecls.h
/usr/local/include/tdbcInt.h
/usr/local/include/tk.h
/usr/local/include/tkDecls.h
/usr/local/include/tkPlatDecls.h
Warning: Unbrewed .pc files were found in /usr/local/lib/pkgconfig.
If you didn't put them there on purpose they could cause problems when
building Homebrew formulae, and may need to be deleted.
Unexpected .pc files:
/usr/local/lib/pkgconfig/tcl.pc
/usr/local/lib/pkgconfig/tk.pc
Warning: Unbrewed static libraries were found in /usr/local/lib.
If you didn't put them there on purpose they could cause problems when
building Homebrew formulae, and may need to be deleted.
Unexpected static libraries:
/usr/local/lib/libtclstub8.6.a
/usr/local/lib/libtkstub8.6.a
Warning: Homebrew's sbin was not found in your PATH but you have installed
formulae that put executables in /usr/local/sbin.
Consider setting the PATH for example like so
echo 'export PATH="/usr/local/sbin:$PATH"' >> ~/.bash_profile
Warning: Broken symlinks were found. Remove them with `brew prune`:
/usr/local/bin/2to3-3.6
/usr/local/bin/easy_install-3.6
/usr/local/bin/idle3
/usr/local/bin/idle3.6
/usr/local/bin/wheel3
/usr/local/etc/bash_completion.d/_brew_services
/usr/local/lib/pkgconfig/python-3.6.pc
/usr/local/lib/pkgconfig/python-3.6m.pc
/usr/local/lib/pkgconfig/python3.pc
/usr/local/share/man/man1/python3.1
/usr/local/share/man/man1/python3.6.1
/usr/local/opt/python3
/usr/local/opt/python#3
/usr/local/var/homebrew/linked/python3
1)so there i see it is asking me to delete some of the files from the folders /usr/local/lib /usr/local/include /usr/local/lib
i just want to know how does this files happened to exist and how they effect homebrew.
2)also i did brew prune to remove the broken symlinks but i see them again after i again used brew doctor .
3) i see a warning above broken symlinks warning i.e
Homebrew's sbin was not found in your PATH but you have installed
formulae that put executables in /usr/local/sbin.
Consider setting the PATH for example like so
echo 'export PATH="/usr/local/sbin:$PATH"' >> ~/.bash_profile
how to fix it?
pardon me if this is being asked again cause i'm a beginner and couldnt find appropriate solutions.

Are there obvious sources for the Brew Doctor warnings I'm seeing?

I have recently installed Hombrew on Yosemite with Xcode installed and would like to better understand what brew doctor is warning me about. I understand that these warnings are nothing to worry about (until they are) and am not asking how or whether to respond to them; but I would like to do the best I can to understand the likely causes so that I can be prepared when issues come up (and also to head off issues that others in my office may encounter on similar systems).
Are any of the items below from obvious sources on a 10.10 machine with Xcode and non-brew Fortran installed? Do any of these items ring a bell?
Warning: Some directories in /usr/local/share/man aren't writable.
This can happen if you "sudo make install" software that isn't managed
by Homebrew. If a brew tries to add locale information to one of these
directories, then the install will fail during the link step.
You should probably `chown` them:
/usr/local/share/man/de
/usr/local/share/man/de/man1
/usr/local/share/man/mann
Warning: Broken symlinks were found. Remove them with `brew prune`:
/usr/local/lib/libasan.dylib
/usr/local/lib/libatomic.dylib
/usr/local/lib/libcilkrts.dylib
/usr/local/lib/libgcc_s_ppc64.1.dylib
/usr/local/lib/libgcc_s_x86_64.1.dylib
/usr/local/lib/libgfortran.dylib
/usr/local/lib/libgmp.dylib
/usr/local/lib/libgmpxx.dylib
/usr/local/lib/libgomp.dylib
/usr/local/lib/libitm.dylib
/usr/local/lib/libmpc.dylib
/usr/local/lib/libmpfr.dylib
/usr/local/lib/libquadmath.dylib
/usr/local/lib/libssp.dylib
/usr/local/lib/libstdc++.dylib
/usr/local/lib/libubsan.dylib
/usr/local/lib/ppc64/libgfortran.2.0.0.dylib
/usr/local/lib/ppc64/libgfortran.2.dylib
/usr/local/lib/ppc64/libgfortran.dylib
/usr/local/lib/x86_64/libgfortran.2.0.0.dylib
/usr/local/lib/x86_64/libgfortran.2.dylib
/usr/local/lib/x86_64/libgfortran.dylib
Warning: "config" scripts exist outside your system or Homebrew directories.
`./configure` scripts often look for *-config scripts to determine if
software packages are installed, and what additional flags to use when
compiling and linking.
Having additional scripts in your path can confuse software installed via
Homebrew if the config script overrides a system or Homebrew provided
script of the same name. We found the following "config" scripts:
/opt/ImageMagick/bin/Magick++-config
/opt/ImageMagick/bin/Magick-config
/opt/ImageMagick/bin/MagickCore-config
/opt/ImageMagick/bin/MagickWand-config
/opt/ImageMagick/bin/Wand-config
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/fakemysql.h
/usr/local/include/fakepq.h
/usr/local/include/fakesql.h
/usr/local/include/gmp.h
/usr/local/include/gmpxx.h
/usr/local/include/graphviz/arith.h
/usr/local/include/graphviz/cdt.h
/usr/local/include/graphviz/cgraph.h
/usr/local/include/graphviz/color.h
/usr/local/include/graphviz/geom.h
/usr/local/include/graphviz/graphviz_version.h
/usr/local/include/graphviz/gvc.h
/usr/local/include/graphviz/gvcext.h
/usr/local/include/graphviz/gvcjob.h
/usr/local/include/graphviz/gvcommon.h
/usr/local/include/graphviz/gvconfig.h
/usr/local/include/graphviz/gvplugin.h
/usr/local/include/graphviz/gvplugin_device.h
/usr/local/include/graphviz/gvplugin_layout.h
/usr/local/include/graphviz/gvplugin_loadimage.h
/usr/local/include/graphviz/gvplugin_render.h
/usr/local/include/graphviz/gvplugin_textlayout.h
/usr/local/include/graphviz/gvpr.h
/usr/local/include/graphviz/pack.h
/usr/local/include/graphviz/pathgeom.h
/usr/local/include/graphviz/pathplan.h
/usr/local/include/graphviz/textspan.h
/usr/local/include/graphviz/types.h
/usr/local/include/graphviz/usershape.h
/usr/local/include/graphviz/xdot.h
/usr/local/include/itcl.h
/usr/local/include/itcl2TclOO.h
/usr/local/include/itclDecls.h
/usr/local/include/itclInt.h
/usr/local/include/itclIntDecls.h
/usr/local/include/itclMigrate2TclCore.h
/usr/local/include/itclTclIntStubsFcn.h
/usr/local/include/mpc.h
/usr/local/include/mpf2mpfr.h
/usr/local/include/mpfr.h
/usr/local/include/mysqlStubs.h
/usr/local/include/odbcStubs.h
/usr/local/include/pqStubs.h
/usr/local/include/tcl.h
/usr/local/include/tclDecls.h
/usr/local/include/tclOO.h
/usr/local/include/tclOODecls.h
/usr/local/include/tclPlatDecls.h
/usr/local/include/tclThread.h
/usr/local/include/tclTomMath.h
/usr/local/include/tclTomMathDecls.h
/usr/local/include/tdbc.h
/usr/local/include/tdbcDecls.h
/usr/local/include/tdbcInt.h
/usr/local/include/tk.h
/usr/local/include/tkDecls.h
/usr/local/include/tkPlatDecls.h
Warning: Unbrewed .la files were found in /usr/local/lib.
If you didn't put them there on purpose they could cause problems when
building Homebrew formulae, and may need to be deleted.
Unexpected .la files:
/usr/local/lib/libasan.la
/usr/local/lib/libatomic.la
/usr/local/lib/libcilkrts.la
/usr/local/lib/libgfortran.la
/usr/local/lib/libgmp.la
/usr/local/lib/libgmpxx.la
/usr/local/lib/libgomp.la
/usr/local/lib/libitm.la
/usr/local/lib/libmpc.la
/usr/local/lib/libmpfr.la
/usr/local/lib/libquadmath.la
/usr/local/lib/libssp.la
/usr/local/lib/libssp_nonshared.la
/usr/local/lib/libstdc++.la
/usr/local/lib/libsupc++.la
/usr/local/lib/libubsan.la
Warning: Unbrewed .pc files were found in /usr/local/lib/pkgconfig.
If you didn't put them there on purpose they could cause problems when
building Homebrew formulae, and may need to be deleted.
Unexpected .pc files:
/usr/local/lib/pkgconfig/libcdt.pc
/usr/local/lib/pkgconfig/libcgraph.pc
/usr/local/lib/pkgconfig/libgvc.pc
/usr/local/lib/pkgconfig/libgvpr.pc
/usr/local/lib/pkgconfig/libpathplan.pc
/usr/local/lib/pkgconfig/libxdot.pc
/usr/local/lib/pkgconfig/tcl.pc
/usr/local/lib/pkgconfig/tk.pc
Warning: Unbrewed static libraries were found in /usr/local/lib.
If you didn't put them there on purpose they could cause problems when
building Homebrew formulae, and may need to be deleted.
Unexpected static libraries:
/usr/local/lib/libatomic.a
/usr/local/lib/libcilkrts.a
/usr/local/lib/libgfortran.a
/usr/local/lib/libgmp.a
/usr/local/lib/libgmpxx.a
/usr/local/lib/libgomp.a
/usr/local/lib/libitm.a
/usr/local/lib/libmpc.a
/usr/local/lib/libmpfr.a
/usr/local/lib/libquadmath.a
/usr/local/lib/libssp.a
/usr/local/lib/libssp_nonshared.a
/usr/local/lib/libstdc++.a
/usr/local/lib/libsupc++.a
/usr/local/lib/libtclstub8.6.a
/usr/local/lib/libtkstub8.6.a
There is a variety of warnings here, probably all with a very similar cause: having installed software from source (by compiling with configure; make; make install, or sometimes unpacking a very specific (e.g. scientific) package, such as fortran). That would be mostly software with a unix background, and the software decided to install itself in /usr/local.
I don't know your background, so I'm going to expand somewhat (I'll probably miss a few things or may have a few things (somewhat) incorrect):
In unix & linux, a piece of software is often distributed across various subdirectories, and not inside a single package (which is more Mac style). It can consist of binary that goes into /usr/local/bin/, a library with routines used by the binary that is put in /usr/local/lib/, some header file for function declarations that lives in /usr/local/include/, a manual page that is put in /usr/local/man/ or additional (e.g. configuration) data that could go into /usr/local/share/. Practically any combination can exist.
That looks a bit scattered, but it works. It does mean that pieces of different software live in the same subdirectory, as you can see form the various lists of filenames.
Note that /usr/local/ is in so far unique, that it tends to be a preferred directory to install extra software: software that the system (OS) can do without. This is also why Homebrew likes to install software there. Other software managers avoid the unix default of /usr/local/ and install in /opt/local/ (Macports) or /sw/ (Fink). But the fact that Homebrew picks the default "extra" software installation part can mean it clashes with other installed software.
Your system software lives in plain /usr/, or /System/ and /Library/, and stays out of /usr/local/; if you remove /usr/local/ completely, your system will still work.
So, with that in mind, the warnings:
Warning: Some directories in /usr/local/share/man aren't writable.
This can happen if you "sudo make install" software that isn't managed
by Homebrew. If a brew tries to add locale information to one of these
directories, then the install will fail during the link step. You
should probably chown them:
/usr/local/share/man/de
/usr/local/share/man/de/man1
/usr/local/share/man/mann
Other software installed its manual pages here, likely with the sudo command (you may simply have had a dialog asking for your password; sudo then happened under the hood). In that case, those specific directories are "owned" by "root", and not by the usual Homebrew user (your login). That would mean Homebrew can't, in a future event, not write in those directories, if it ever comes across software that likes its manual pages there, since it's not owned by the Homebrew user.
You can alleviate this by changing the permissions to yourself:
$ sudo chown -R <user>:<group> /usr/local/share/man/de
$ sudo chown -R <user>:<group> /usr/local/share/man/mann
(do an $ ls -l $HOME to find your <user> and <group> to fill in: it's the hopefully obvious columns.)
Warning: Broken symlinks were found. Remove them with `brew prune`:
A sym(bolic )link is just a pointer to a file that exist somewhere else. If it's broken, the original file doesn't exist anymore, or the symlink is pointing to the wrong place. You can see what it is pointing at by doing for example:
ls -l /usr/local/lib/libasan.dylib
The .dylib files are all dynamic libraries: library files that contain functions, and are meant to be used by other programs (but, specifically, not fully included inside that program; see later on static libraries). A broken library file is a potentially bad thing: new software that wants to use those files may think "ah, I can use this library" and then things go bad during compilation, when it turns out the file doesn't exist anymore. So, it may be wise to prune (remove) the symbolic links. (A symbolic link can normally be safely removed, even if it points correctly: it's only a pointer, the original file is left untouched.)
Warning: "config" scripts exist outside your system or Homebrew directories.
`./configure` scripts often look for *-config scripts to determine if
software packages are installed, and what additional flags to use when
compiling and linking.
Having additional scripts in your path can confuse software installed via
Homebrew if the config script overrides a system or Homebrew provided
script of the same name. We found the following "config" scripts:
configure is part of the chain to build software from source on the command line. It looks around on your system for existing libraries, and also ask for the configuration of programs using these -config scripts. Homebrew had a look around, and found such scripts outside the usual directories. Thus, configure could find multiple versions of the same config script, get confused which one to use and use the wrong one.
In this case, it's all ImageMagick stuff. Depending how you use it, you could opt to remove the entire /opt/ImageMagick/ directory (and perhaps you're then left with an empty /opt/ directory, in which case you can also remove /opt/; it's not part of the usual system).
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.
Warning: Unbrewed .la files were found in /usr/local/lib.
If you didn't put them there on purpose they could cause problems when
building Homebrew formulae, and may need to be deleted.
Warning: Unbrewed static libraries were found in /usr/local/lib.
If you didn't put them there on purpose they could cause problems when
building Homebrew formulae, and may need to be deleted.
These are all related, and related to the dynamic libraries mentioned before. The .a files are static libraries: they (also) contain often-used functions, but those files get included inside the binary when compiling software from source (thus, the binary becomes bigger than with dynamic libraries). The .h files are header files, which tell programs what the library files contain; the .la have some extra information on the .a library files.
The warning tells you that Homebrew may get confused when installing new software: perhaps it will try to use these libraries, but they happen to be the (oh so slightly) wrong version and things don't work. You don't know until you bump into it, unfortunately.
Warning: Unbrewed .pc files were found in /usr/local/lib/pkgconfig.
If you didn't put them there on purpose they could cause problems when
building Homebrew formulae, and may need to be deleted.
pkgconfig files are similar to those config scripts mentioned earlier: they contain configuration information if you need some earlier installed software to build new software. Again, as before: versions may mismatch slightly and then things could not work as intended (it doesn't install, or crashes, or makes your computer pass the Turing test).
As for how you may have gotten all those files in /usr/local.? Probably you installed a package that puts everything in /usr/local/ as well. As mentioned, it is a default place to put things. Since it features libgfortran and libgomp, I'm inclined to think about some scientific package.
All in all, most warnings are about potential incompatibilities: Homebrew, like most package/software managers, tries to hold some grip (not too tight though) on what it installs and what is around, because backwards incompatibilities and such can mean that newly installed software from source ("brewed" software) doesn't properly install or run. As an example, Macports is more strict (at least it was years ago when I used it), and will download matching, known compatible, versions of required extra software (thus, you could end up with four different versions of a C compiler).
Homebrew tries to be lenient with respect to installed libraries and such, but it does warn you that bad things can happen, either during compilation or later on.

Homebrew libiconv error

i ran this following code
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
.................................................
$ brew doctor
Warning: /usr/local/include isn't writable.
This can happen if you "sudo make install" software that isn't managed by
by Homebrew. If a brew tries to write a file to this directory, the
install will fail during the link step.
You should probably chown /usr/local/include
Warning: /usr/local/lib/pkgconfig isn't writable.
This can happen if you "sudo make install" software that isn't managed by
by Homebrew. If a brew tries to write a file to this directory, the
install will fail during the link step.
You should probably chown /usr/local/lib/pkgconfig
Warning: Some directories in /usr/local/share/locale aren't writable.
This can happen if you "sudo make install" software that isn't managed
by Homebrew. If a brew tries to add locale information to one of these
directories, then the install will fail during the link step.
You should probably chown them:
/usr/local/share/locale
/usr/local/share/locale/af
/usr/local/share/locale/af/LC_MESSAGES
.....
.......
Warning: gettext files detected at a system prefix
These files can cause compilation and link failures, especially if they
are compiled with improper architectures. Consider removing these files:
/usr/local/lib/libgettextlib.dylib
/usr/local/lib/libintl.dylib
/usr/local/include/libintl.h
Warning: libiconv files detected at a system prefix other than /usr
Homebrew doesn't provide a libiconv formula, and expects to link against
the system version in /usr. libiconv in other prefixes can cause
compile or link failure, especially if compiled with improper
architectures. OS X itself never installs anything to /usr/local so
it was either installed by a user or some other third party software.
tl;dr: delete these files:
/usr/local/lib/libiconv.dylib
/usr/local/include/iconv.h
Warning: You have MacPorts or Fink installed:
/opt/local/bin/port
This can cause trouble. You don't have to uninstall them, but you may want to
temporarily move them out of the way, e.g.
sudo mv /opt/local ~/macports
Warning: Unbrewed dylibs were found in /usr/local/lib.
If you didn't put them there on purpose they could cause problems when
building Homebrew formulae, and may need to be deleted.
Unexpected dylibs:
/usr/local/lib/libasprintf.0.dylib
/usr/local/lib/libcharset.1.dylib
/usr/local/lib/libcunit.1.dylib
/usr/local/lib/libgettextlib-0.18.3.dylib
/usr/local/lib/libgettextpo.0.dylib
/usr/local/lib/libgettextsrc-0.18.3.dylib
/usr/local/lib/libiconv.2.dylib
/usr/local/lib/libintl.8.dylib
/usr/local/lib/libjansson.4.dylib
/usr/local/lib/libltdl.7.dylib
/usr/local/lib/libsqlite3.0.dylib
Warning: Unbrewed .la files were found in /usr/local/lib.
If you didn't put them there on purpose they could cause problems when
building Homebrew formulae, and may need to be deleted.
Unexpected .la files:
/usr/local/lib/libasprintf.la
/usr/local/lib/libcharset.la
/usr/local/lib/libcunit.la
/usr/local/lib/libgettextlib.la
/usr/local/lib/libgettextpo.la
/usr/local/lib/libgettextsrc.la
/usr/local/lib/libiconv.la
/usr/local/lib/libintl.la
/usr/local/lib/libjansson.la
/usr/local/lib/libltdl.la
/usr/local/lib/libsqlite3.la
Warning: Unbrewed .pc files were found in /usr/local/lib/pkgconfig.
If you didn't put them there on purpose they could cause problems when
building Homebrew formulae, and may need to be deleted.
Unexpected .pc files:
/usr/local/lib/pkgconfig/cunit.pc
/usr/local/lib/pkgconfig/jansson.pc
/usr/local/lib/pkgconfig/libiconv.pc
/usr/local/lib/pkgconfig/sqlite3.pc
Warning: Unbrewed static libraries were found in /usr/local/lib.
If you didn't put them there on purpose they could cause problems when
building Homebrew formulae, and may need to be deleted.
Unexpected static libraries:
/usr/local/lib/libasprintf.a
/usr/local/lib/libcharset.a
/usr/local/lib/libcunit.a
/usr/local/lib/libgettextpo.a
/usr/local/lib/libintl.a
/usr/local/lib/libjansson.a
/usr/local/lib/libltdl.a
/usr/local/lib/libsqlite3.a
Warning: You have unlinked kegs in your Cellar
Leaving kegs unlinked can lead to build-trouble and cause brews that depend on
those kegs to fail to run properly once built. Run brew link on these:
cunit
.........................................................
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
If i give "brew link libiconv" the following error is
Warning: libiconv is keg-only and must be linked with --force
Note that doing so can interfere with building software.
Can you tell me how to resolve the libiconv missing error. I installed both Manually and via brew. But still get same following error.
still i getting error when i configure the gcc compile codes
...........
checking for libiconv_open in -liconv... no
checking for iconv_open in -lc... no
checking for iconv_open in -liconv... no
configure: error: Could not find libiconv. Please install libiconv and libiconv-devel
Please help me to resolve this. i still break this error upto 2 days. I'm waiting your replies
Wow! Lots of stuff to fix, there!
Where it says "You should probably chown /usr/local/include", it means you should run:
chown -R `whoami` /usr/local/include
(Same applies for all of the other messages like that.)
It looks like you have a lot of junk in /usr/local, though. I'd maybe move it somewhere else (like, /usr/local-broken) and then reinstall homebrew. You might get away with running
make uninstall
from whereever you installed libiconv from.
Once you've got all the brew doctor warnings resolved, I'd say something like
LDFLAGS=-L/usr/local/opt/libiconv/lib CPPFLAGS=-L/usr/local/opt/libiconv/include brew install whatever
might work for you! This way you're compiling with the libiconv files that homebrew built for you.
Good luck!

Homebrew: brew doctor throwing up a lot of errors, how can I fix them? [closed]

Closed. This question is off-topic. It is not currently accepting answers.
Want to improve this question? Update the question so it's on-topic for Stack Overflow.
Closed 9 years ago.
Improve this question
I installed homebrew a long time ago and I don't use it that much, but I was thinking of starting to get back into it as it's a very useful and easy to use package installer. Anyway, I ran the brew doctor and got a whole host of warnings which I'm not sure how to fix! I'm especially scared of deleting .dylib, .la and .pc files, in case my packages that weren't installed via homebrew needed them. Any help on the issue would be greatly appreciated, if it matters I'm running Mac OS X Mountain Lion (10.8.3), my list of warnings is as follows:
UOS-12044:~ as34g12$ brew doctor
Warning: /usr/local/include isn't writable.
This can happen if you "sudo make install" software that isn't managed
by Homebrew.
If a brew tries to write a header file to this directory, the install will
fail during the link step.
You should probably `chown` /usr/local/include
Warning: /usr/local/share isn't writable.
This can happen if you "sudo make install" software that isn't managed
by Homebrew.
If a brew tries to write a file to this directory, the install will
fail during the link step.
You should probably `chown` /usr/local/share
Warning: Some directories in /usr/local/share/locale aren't writable.
This can happen if you "sudo make install" software that isn't managed
by Homebrew. If a brew tries to add locale information to one of these
directories, then the install will fail during the link step.
You should probably `chown` them:
/usr/local/share/locale
/usr/local/share/locale/be
/usr/local/share/locale/be/LC_MESSAGES
/usr/local/share/locale/ca
/usr/local/share/locale/ca/LC_MESSAGES
/usr/local/share/locale/da
/usr/local/share/locale/da/LC_MESSAGES
/usr/local/share/locale/de
/usr/local/share/locale/de/LC_MESSAGES
/usr/local/share/locale/el
/usr/local/share/locale/el/LC_MESSAGES
/usr/local/share/locale/es
/usr/local/share/locale/es/LC_MESSAGES
/usr/local/share/locale/fr
/usr/local/share/locale/fr/LC_MESSAGES
/usr/local/share/locale/ja
/usr/local/share/locale/ja/LC_MESSAGES
/usr/local/share/locale/nl
/usr/local/share/locale/nl/LC_MESSAGES
/usr/local/share/locale/sv
/usr/local/share/locale/sv/LC_MESSAGES
/usr/local/share/locale/tr
/usr/local/share/locale/tr/LC_MESSAGES
Warning: Some directories in /usr/local/share/man aren't writable.
This can happen if you "sudo make install" software that isn't managed
by Homebrew. If a brew tries to add locale information to one of these
directories, then the install will fail during the link step.
You should probably `chown` them:
/usr/local/share/man/de
/usr/local/share/man/de/man1
Warning: The /usr/local directory is not writable.
Even if this directory was writable when you installed Homebrew, other
software may change permissions on this directory. Some versions of the
"InstantOn" component of Airfoil are known to do this.
You should probably change the ownership and permissions of /usr/local
back to your user account.
Warning: Setting DYLD_LIBRARY_PATH can break dynamic linking.
You should probably unset it.
Warning: "config" scripts exist outside your system or Homebrew directories.
`./configure` scripts often look for *-config scripts to determine if
software packages are installed, and what additional flags to use when
compiling and linking.
Having additional scripts in your path can confuse software installed via
Homebrew if the config script overrides a system or Homebrew provided
script of the same name. We found the following "config" scripts:
/Library/Frameworks/Python.framework/Versions/2.7/bin/python-config
/Library/Frameworks/Python.framework/Versions/2.7/bin/python2-config
/Library/Frameworks/Python.framework/Versions/2.7/bin/python2.7-config
/soft/star-hikianalia/bin/gsl-config
Warning: Unbrewed dylibs were found in /usr/local/lib.
If you didn't put them there on purpose they could cause problems when
building Homebrew formulae, and may need to be deleted.
Unexpected dylibs:
/usr/local/lib/libatomic.1.dylib
/usr/local/lib/libg2c.0.0.0.dylib
/usr/local/lib/libgcc_ext.10.4.dylib
/usr/local/lib/libgcc_ext.10.5.dylib
/usr/local/lib/libgcc_s.1.dylib
/usr/local/lib/libgfortran.3.dylib
/usr/local/lib/libgomp.1.dylib
/usr/local/lib/libitm.1.dylib
/usr/local/lib/libmacfuse_i32.2.dylib
/usr/local/lib/libmacfuse_i64.2.dylib
/usr/local/lib/libntfs-3g.80.dylib
/usr/local/lib/libntfs.9.0.0.dylib
/usr/local/lib/libosxfuse_i32.2.dylib
/usr/local/lib/libosxfuse_i64.2.dylib
/usr/local/lib/libquadmath.0.dylib
/usr/local/lib/libssp.0.dylib
/usr/local/lib/libstdc++.6.dylib
/usr/local/lib/libublio.1.dylib
Warning: Unbrewed .la files were found in /usr/local/lib.
If you didn't put them there on purpose they could cause problems when
building Homebrew formulae, and may need to be deleted.
Unexpected .la files:
/usr/local/lib/libatomic.la
/usr/local/lib/libfftw3.la
/usr/local/lib/libfftw3_threads.la
/usr/local/lib/libfftw3f.la
/usr/local/lib/libfftw3f_threads.la
/usr/local/lib/libg2c.la
/usr/local/lib/libgfortran.la
/usr/local/lib/libgmp.la
/usr/local/lib/libgomp.la
/usr/local/lib/libitm.la
/usr/local/lib/libmpc.la
/usr/local/lib/libmpfr.la
/usr/local/lib/libntfs-3g.la
/usr/local/lib/libntfs.la
/usr/local/lib/libosxfuse_i32.la
/usr/local/lib/libosxfuse_i64.la
/usr/local/lib/libquadmath.la
/usr/local/lib/libssp.la
/usr/local/lib/libssp_nonshared.la
/usr/local/lib/libstdc++.la
/usr/local/lib/libsupc++.la
/usr/local/lib/libublio.la
Warning: Unbrewed .pc files were found in /usr/local/lib/pkgconfig.
If you didn't put them there on purpose they could cause problems when
building Homebrew formulae, and may need to be deleted.
Unexpected .pc files:
/usr/local/lib/pkgconfig/cfitsio.pc
/usr/local/lib/pkgconfig/fftw3.pc
/usr/local/lib/pkgconfig/fftw3f.pc
/usr/local/lib/pkgconfig/libntfs-3g.pc
/usr/local/lib/pkgconfig/libublio.pc
/usr/local/lib/pkgconfig/osxfuse.pc
Warning: Unbrewed static libraries were found in /usr/local/lib.
If you didn't put them there on purpose they could cause problems when
building Homebrew formulae, and may need to be deleted.
Unexpected static libraries:
/usr/local/lib/libatlas.a
/usr/local/lib/libatomic.a
/usr/local/lib/libcblas.a
/usr/local/lib/libcfitsio.a
/usr/local/lib/libf77blas.a
/usr/local/lib/libfftw3.a
/usr/local/lib/libfftw3_threads.a
/usr/local/lib/libfftw3f.a
/usr/local/lib/libfftw3f_threads.a
/usr/local/lib/libfrtbegin.a
/usr/local/lib/libg2c.a
/usr/local/lib/libgfortran.a
/usr/local/lib/libgmp.a
/usr/local/lib/libgomp.a
/usr/local/lib/libiberty.a
/usr/local/lib/libitm.a
/usr/local/lib/liblapack.a
/usr/local/lib/libmpc.a
/usr/local/lib/libmpfr.a
/usr/local/lib/libntfs-3g.a
/usr/local/lib/libntfs.a
/usr/local/lib/libptcblas.a
/usr/local/lib/libptf77blas.a
/usr/local/lib/libquadmath.a
/usr/local/lib/libssp.a
/usr/local/lib/libssp_nonshared.a
/usr/local/lib/libstdc++.a
/usr/local/lib/libsupc++.a
/usr/local/lib/libublio.a
Warning: You have unlinked kegs in your Cellar
Leaving kegs unlinked can lead to build-trouble and cause brews that depend on
those kegs to fail to run properly once built. Run `brew link` on these:
fftw
Warning: You have uncommitted modifications to Homebrew
If this a surprise to you, then you should stash these modifications.
Stashing returns Homebrew to a pristine state but can be undone
should you later need to do so for some reason.
cd /usr/local/Library && git stash && git clean -f
Warning: Some installed formula are missing dependencies.
You should `brew install` the missing dependencies:
brew install gmp harfbuzz icu4c libmpc mpfr
Run `brew missing` for more details.
Thanks in advance for the help!
It states in the error message what the problem is;
Warning: /usr/local/include isn't writable
You should probably change the ownership and permissions of /usr/local
back to your user account.
If you run ls -l /usr/local/ you should have an output like this:
total 4
-rw-r--r-- 1 user admin 493 23 Apr 15:14 CONTRIBUTING.md
drwxr-xr-x 17 user admin 578 5 May 14:54 Cellar
drwxr-xr-x 3 user admin 102 23 Apr 16:33 Frameworks
drwxr-xr-x 10 user admin 340 24 Apr 08:50 Library
Where user is your username and admin is your group. If you see something more like:
drwxr-xr-x 17 root wheel 578 5 May 14:54 Cellar
you will have to run chown -R user:admin /usr/local which will change the ownership back to your user.
This should solve the first part. However, be warned, this could stop other software working if you have previously run "sudo make install" software that isn't managed
by Homebrew.
There is also a great answer on How do i fix brew doctor errors that addresses your DYLD_LIBRARY_PATH issues.
Basically you have things in /usr/local that are not done via homebrew and confuses it. So you have to choose to keep the homebrew stuff or the others.
If you do not know which is which I would backup /usr/local amd delete it and start with all homebrew or all others.

How to fix my brew doctor errors?

Running brew doctor on my mountain lion terminal , I get the following errors :
Warning: /usr/local/etc isn't writable.
This can happen if you "sudo make install" software that isn't managed
by Homebrew.
If a brew tries to write a file to this directory, the install will
fail during the link step.
You should probably `chown` /usr/local/etc
Warning: Some directories in /usr/local/share/man aren't writable.
This can happen if you "sudo make install" software that isn't managed
by Homebrew. If a brew tries to add locale information to one of these
directories, then the install will fail during the link step.
You should probably `chown` them:
/usr/local/share/man/man8
Warning: Your XQuartz (2.7.2) is outdated
Please install XQuartz 2.7.4.
Warning: Unbrewed dylibs were found in /usr/local/lib.
If you didn't put them there on purpose they could cause problems when
building Homebrew formulae, and may need to be deleted.
Unexpected dylibs:
/usr/local/lib/libicudata.49.1.2.dylib /usr/local/lib/libicui18n.49.1.2.dylib /usr/local/lib/libicuio.49.1.2.dylib /usr/local/lib/libicule.49.1.2.dylib /usr/local/lib/libiculx.49.1.2.dylib /usr/local/lib/libicutest.49.1.2.dylib /usr/local/lib/libicutu.49.1.2.dylib /usr/local/lib/libicuuc.49.1.2.dylib
Warning: Unbrewed .pc files were found in /usr/local/lib/pkgconfig.
If you didn't put them there on purpose they could cause problems when
building Homebrew formulae, and may need to be deleted.
Unexpected .pc files:
/usr/local/lib/pkgconfig/icu-i18n.pc /usr/local/lib/pkgconfig/icu-io.pc /usr/local/lib/pkgconfig/icu-le.pc /usr/local/lib/pkgconfig/icu-lx.pc /usr/local/lib/pkgconfig/icu-uc.pc
Warning: Unbrewed static libraries were found in /usr/local/lib.
If you didn't put them there on purpose they could cause problems when
building Homebrew formulae, and may need to be deleted.
Unexpected static libraries:
/usr/local/lib/libc-client.a
Warning: Homebrew's sbin was not found in your path.
Consider amending your PATH variable so it contains:
/usr/local/sbin
How can I fix these errors?
Is it critical to fix them or I may ignore them?
Thank you.
If you read the text carefully, you will realize that it actually tells you how to fix the errors:
You should probably `chown` /usr/local/etc
You should probably `chown` them:
/usr/local/share/man/man8
dylibs, .pc files..
may need to be deleted
So, change the owner of the mentioned directory to your user, and delete the unwanted files (if you didn't put them there on purpose).

Resources