Homebrew / brew

🍺 The missing package manager for macOS (or Linux)
https://brew.sh
BSD 2-Clause "Simplified" License
40.93k stars 9.61k forks source link

Brew requires linking before installing packages and never works #1519

Closed dannykopping closed 7 years ago

dannykopping commented 7 years ago

Bug reports:

The only step that resolves the issue is removing the affected linked packages and installing the desired package.

For example:

brew install php56           
Updating Homebrew...
==> Installing php56 from homebrew/php
Error: You must `brew link jpeg unixodbc` before homebrew/php/php56 can be installed
MikeMcQuaid commented 7 years ago

To help us debug this issue can you explain:

ilovezfs commented 7 years ago

@dannykopping any update here?

dannykopping commented 7 years ago

I think this should be pretty illustrative:

infomaniac $ brew install gprof2dot
Error: You must `brew link libpng` before gprof2dot can be installed
infomaniac $ brew link libpng
Linking /usr/local/Cellar/libpng/1.6.26... 4 symlinks created
infomaniac $ brew install gprof2dot
Error: You must `brew link libpng` before gprof2dot can be installed
dannykopping commented 7 years ago

Even though this package does not depend on libpng:

$ brew info gprof2dot
gprof2dot: stable 2016.10.13 (bottled), HEAD
Convert the output from many profilers into a Graphviz dot graph.
https://github.com/jrfonseca/gprof2dot
Not installed
From: https://github.com/Homebrew/homebrew-core/blob/master/Formula/gprof2dot.rb
==> Dependencies
Recommended: graphviz ✘
==> Options
--without-graphviz
        Build without graphviz support
--HEAD
        Install HEAD version
ilovezfs commented 7 years ago

OK, so first off, it does depend on libpng because it depends on graphviz, and graphviz depends on libpng. The question is what's wrong with your libpng. Can you post the output of

find /usr/local/Cellar/libpng
ls -l /usr/local/opt/libpng
ls -l /usr/local/var/homebrew/linked/libpng
dannykopping commented 7 years ago

Sorry, my bad

find /usr/local/Cellar/libpng

/usr/local/Cellar/libpng
/usr/local/Cellar/libpng/1.5.14
/usr/local/Cellar/libpng/1.5.14/bin
/usr/local/Cellar/libpng/1.5.14/bin/libpng-config
/usr/local/Cellar/libpng/1.5.14/bin/libpng15-config
/usr/local/Cellar/libpng/1.5.14/CHANGES
/usr/local/Cellar/libpng/1.5.14/include
/usr/local/Cellar/libpng/1.5.14/include/libpng15
/usr/local/Cellar/libpng/1.5.14/include/libpng15/png.h
/usr/local/Cellar/libpng/1.5.14/include/libpng15/pngconf.h
/usr/local/Cellar/libpng/1.5.14/include/libpng15/pnglibconf.h
/usr/local/Cellar/libpng/1.5.14/include/png.h
/usr/local/Cellar/libpng/1.5.14/include/pngconf.h
/usr/local/Cellar/libpng/1.5.14/include/pnglibconf.h
/usr/local/Cellar/libpng/1.5.14/INSTALL_RECEIPT.json
/usr/local/Cellar/libpng/1.5.14/lib
/usr/local/Cellar/libpng/1.5.14/lib/libpng.a
/usr/local/Cellar/libpng/1.5.14/lib/libpng.dylib
/usr/local/Cellar/libpng/1.5.14/lib/libpng.la
/usr/local/Cellar/libpng/1.5.14/lib/libpng15.15.dylib
/usr/local/Cellar/libpng/1.5.14/lib/libpng15.a
/usr/local/Cellar/libpng/1.5.14/lib/libpng15.dylib
/usr/local/Cellar/libpng/1.5.14/lib/pkgconfig
/usr/local/Cellar/libpng/1.5.14/lib/pkgconfig/libpng.pc
/usr/local/Cellar/libpng/1.5.14/lib/pkgconfig/libpng15.pc
/usr/local/Cellar/libpng/1.5.14/LICENSE
/usr/local/Cellar/libpng/1.5.14/README
/usr/local/Cellar/libpng/1.5.14/share
/usr/local/Cellar/libpng/1.5.14/share/man
/usr/local/Cellar/libpng/1.5.14/share/man/man3
/usr/local/Cellar/libpng/1.5.14/share/man/man3/libpng.3
/usr/local/Cellar/libpng/1.5.14/share/man/man3/libpngpf.3
/usr/local/Cellar/libpng/1.5.14/share/man/man5
/usr/local/Cellar/libpng/1.5.14/share/man/man5/png.5
/usr/local/Cellar/libpng/1.5.14/TODO
/usr/local/Cellar/libpng/1.5.17
/usr/local/Cellar/libpng/1.5.17/bin
/usr/local/Cellar/libpng/1.5.17/bin/libpng-config
/usr/local/Cellar/libpng/1.5.17/bin/libpng15-config
/usr/local/Cellar/libpng/1.5.17/CHANGES
/usr/local/Cellar/libpng/1.5.17/include
/usr/local/Cellar/libpng/1.5.17/include/libpng15
/usr/local/Cellar/libpng/1.5.17/include/libpng15/png.h
/usr/local/Cellar/libpng/1.5.17/include/libpng15/pngconf.h
/usr/local/Cellar/libpng/1.5.17/include/libpng15/pnglibconf.h
/usr/local/Cellar/libpng/1.5.17/include/png.h
/usr/local/Cellar/libpng/1.5.17/include/pngconf.h
/usr/local/Cellar/libpng/1.5.17/include/pnglibconf.h
/usr/local/Cellar/libpng/1.5.17/INSTALL_RECEIPT.json
/usr/local/Cellar/libpng/1.5.17/lib
/usr/local/Cellar/libpng/1.5.17/lib/libpng.a
/usr/local/Cellar/libpng/1.5.17/lib/libpng.dylib
/usr/local/Cellar/libpng/1.5.17/lib/libpng.la
/usr/local/Cellar/libpng/1.5.17/lib/libpng15.15.dylib
/usr/local/Cellar/libpng/1.5.17/lib/libpng15.a
/usr/local/Cellar/libpng/1.5.17/lib/libpng15.dylib
/usr/local/Cellar/libpng/1.5.17/lib/pkgconfig
/usr/local/Cellar/libpng/1.5.17/lib/pkgconfig/libpng.pc
/usr/local/Cellar/libpng/1.5.17/lib/pkgconfig/libpng15.pc
/usr/local/Cellar/libpng/1.5.17/LICENSE
/usr/local/Cellar/libpng/1.5.17/README
/usr/local/Cellar/libpng/1.5.17/share
/usr/local/Cellar/libpng/1.5.17/share/man
/usr/local/Cellar/libpng/1.5.17/share/man/man3
/usr/local/Cellar/libpng/1.5.17/share/man/man3/libpng.3
/usr/local/Cellar/libpng/1.5.17/share/man/man3/libpngpf.3
/usr/local/Cellar/libpng/1.5.17/share/man/man5
/usr/local/Cellar/libpng/1.5.17/share/man/man5/png.5
/usr/local/Cellar/libpng/1.5.17/TODO
/usr/local/Cellar/libpng/1.6.10
/usr/local/Cellar/libpng/1.6.10/bin
/usr/local/Cellar/libpng/1.6.10/bin/libpng-config
/usr/local/Cellar/libpng/1.6.10/bin/libpng16-config
/usr/local/Cellar/libpng/1.6.10/bin/png-fix-itxt
/usr/local/Cellar/libpng/1.6.10/bin/pngfix
/usr/local/Cellar/libpng/1.6.10/CHANGES
/usr/local/Cellar/libpng/1.6.10/include
/usr/local/Cellar/libpng/1.6.10/include/libpng16
/usr/local/Cellar/libpng/1.6.10/include/libpng16/png.h
/usr/local/Cellar/libpng/1.6.10/include/libpng16/pngconf.h
/usr/local/Cellar/libpng/1.6.10/include/libpng16/pnglibconf.h
/usr/local/Cellar/libpng/1.6.10/include/png.h
/usr/local/Cellar/libpng/1.6.10/include/pngconf.h
/usr/local/Cellar/libpng/1.6.10/include/pnglibconf.h
/usr/local/Cellar/libpng/1.6.10/INSTALL_RECEIPT.json
/usr/local/Cellar/libpng/1.6.10/lib
/usr/local/Cellar/libpng/1.6.10/lib/libpng.a
/usr/local/Cellar/libpng/1.6.10/lib/libpng.dylib
/usr/local/Cellar/libpng/1.6.10/lib/libpng16.16.dylib
/usr/local/Cellar/libpng/1.6.10/lib/libpng16.a
/usr/local/Cellar/libpng/1.6.10/lib/libpng16.dylib
/usr/local/Cellar/libpng/1.6.10/lib/pkgconfig
/usr/local/Cellar/libpng/1.6.10/lib/pkgconfig/libpng.pc
/usr/local/Cellar/libpng/1.6.10/lib/pkgconfig/libpng16.pc
/usr/local/Cellar/libpng/1.6.10/LICENSE
/usr/local/Cellar/libpng/1.6.10/README
/usr/local/Cellar/libpng/1.6.10/share
/usr/local/Cellar/libpng/1.6.10/share/man
/usr/local/Cellar/libpng/1.6.10/share/man/man3
/usr/local/Cellar/libpng/1.6.10/share/man/man3/libpng.3
/usr/local/Cellar/libpng/1.6.10/share/man/man3/libpngpf.3
/usr/local/Cellar/libpng/1.6.10/share/man/man5
/usr/local/Cellar/libpng/1.6.10/share/man/man5/png.5
/usr/local/Cellar/libpng/1.6.10/TODO
/usr/local/Cellar/libpng/1.6.12
/usr/local/Cellar/libpng/1.6.12/bin
/usr/local/Cellar/libpng/1.6.12/bin/libpng-config
/usr/local/Cellar/libpng/1.6.12/bin/libpng16-config
/usr/local/Cellar/libpng/1.6.12/bin/png-fix-itxt
/usr/local/Cellar/libpng/1.6.12/bin/pngfix
/usr/local/Cellar/libpng/1.6.12/CHANGES
/usr/local/Cellar/libpng/1.6.12/include
/usr/local/Cellar/libpng/1.6.12/include/libpng16
/usr/local/Cellar/libpng/1.6.12/include/libpng16/png.h
/usr/local/Cellar/libpng/1.6.12/include/libpng16/pngconf.h
/usr/local/Cellar/libpng/1.6.12/include/libpng16/pnglibconf.h
/usr/local/Cellar/libpng/1.6.12/include/png.h
/usr/local/Cellar/libpng/1.6.12/include/pngconf.h
/usr/local/Cellar/libpng/1.6.12/include/pnglibconf.h
/usr/local/Cellar/libpng/1.6.12/INSTALL_RECEIPT.json
/usr/local/Cellar/libpng/1.6.12/lib
/usr/local/Cellar/libpng/1.6.12/lib/libpng.a
/usr/local/Cellar/libpng/1.6.12/lib/libpng.dylib
/usr/local/Cellar/libpng/1.6.12/lib/libpng16.16.dylib
/usr/local/Cellar/libpng/1.6.12/lib/libpng16.a
/usr/local/Cellar/libpng/1.6.12/lib/libpng16.dylib
/usr/local/Cellar/libpng/1.6.12/lib/pkgconfig
/usr/local/Cellar/libpng/1.6.12/lib/pkgconfig/libpng.pc
/usr/local/Cellar/libpng/1.6.12/lib/pkgconfig/libpng16.pc
/usr/local/Cellar/libpng/1.6.12/LICENSE
/usr/local/Cellar/libpng/1.6.12/README
/usr/local/Cellar/libpng/1.6.12/share
/usr/local/Cellar/libpng/1.6.12/share/man
/usr/local/Cellar/libpng/1.6.12/share/man/man3
/usr/local/Cellar/libpng/1.6.12/share/man/man3/libpng.3
/usr/local/Cellar/libpng/1.6.12/share/man/man3/libpngpf.3
/usr/local/Cellar/libpng/1.6.12/share/man/man5
/usr/local/Cellar/libpng/1.6.12/share/man/man5/png.5
/usr/local/Cellar/libpng/1.6.12/TODO
/usr/local/Cellar/libpng/1.6.13
/usr/local/Cellar/libpng/1.6.13/bin
/usr/local/Cellar/libpng/1.6.13/bin/libpng-config
/usr/local/Cellar/libpng/1.6.13/bin/libpng16-config
/usr/local/Cellar/libpng/1.6.13/bin/png-fix-itxt
/usr/local/Cellar/libpng/1.6.13/bin/pngfix
/usr/local/Cellar/libpng/1.6.13/CHANGES
/usr/local/Cellar/libpng/1.6.13/include
/usr/local/Cellar/libpng/1.6.13/include/libpng16
/usr/local/Cellar/libpng/1.6.13/include/libpng16/png.h
/usr/local/Cellar/libpng/1.6.13/include/libpng16/pngconf.h
/usr/local/Cellar/libpng/1.6.13/include/libpng16/pnglibconf.h
/usr/local/Cellar/libpng/1.6.13/include/png.h
/usr/local/Cellar/libpng/1.6.13/include/pngconf.h
/usr/local/Cellar/libpng/1.6.13/include/pnglibconf.h
/usr/local/Cellar/libpng/1.6.13/INSTALL_RECEIPT.json
/usr/local/Cellar/libpng/1.6.13/lib
/usr/local/Cellar/libpng/1.6.13/lib/libpng.a
/usr/local/Cellar/libpng/1.6.13/lib/libpng.dylib
/usr/local/Cellar/libpng/1.6.13/lib/libpng16.16.dylib
/usr/local/Cellar/libpng/1.6.13/lib/libpng16.a
/usr/local/Cellar/libpng/1.6.13/lib/libpng16.dylib
/usr/local/Cellar/libpng/1.6.13/lib/pkgconfig
/usr/local/Cellar/libpng/1.6.13/lib/pkgconfig/libpng.pc
/usr/local/Cellar/libpng/1.6.13/lib/pkgconfig/libpng16.pc
/usr/local/Cellar/libpng/1.6.13/LICENSE
/usr/local/Cellar/libpng/1.6.13/README
/usr/local/Cellar/libpng/1.6.13/share
/usr/local/Cellar/libpng/1.6.13/share/man
/usr/local/Cellar/libpng/1.6.13/share/man/man3
/usr/local/Cellar/libpng/1.6.13/share/man/man3/libpng.3
/usr/local/Cellar/libpng/1.6.13/share/man/man3/libpngpf.3
/usr/local/Cellar/libpng/1.6.13/share/man/man5
/usr/local/Cellar/libpng/1.6.13/share/man/man5/png.5
/usr/local/Cellar/libpng/1.6.13/TODO
/usr/local/Cellar/libpng/1.6.16
/usr/local/Cellar/libpng/1.6.16/bin
/usr/local/Cellar/libpng/1.6.16/bin/libpng-config
/usr/local/Cellar/libpng/1.6.16/bin/libpng16-config
/usr/local/Cellar/libpng/1.6.16/bin/png-fix-itxt
/usr/local/Cellar/libpng/1.6.16/bin/pngfix
/usr/local/Cellar/libpng/1.6.16/CHANGES
/usr/local/Cellar/libpng/1.6.16/include
/usr/local/Cellar/libpng/1.6.16/include/libpng16
/usr/local/Cellar/libpng/1.6.16/include/libpng16/png.h
/usr/local/Cellar/libpng/1.6.16/include/libpng16/pngconf.h
/usr/local/Cellar/libpng/1.6.16/include/libpng16/pnglibconf.h
/usr/local/Cellar/libpng/1.6.16/include/png.h
/usr/local/Cellar/libpng/1.6.16/include/pngconf.h
/usr/local/Cellar/libpng/1.6.16/include/pnglibconf.h
/usr/local/Cellar/libpng/1.6.16/INSTALL_RECEIPT.json
/usr/local/Cellar/libpng/1.6.16/lib
/usr/local/Cellar/libpng/1.6.16/lib/libpng.a
/usr/local/Cellar/libpng/1.6.16/lib/libpng.dylib
/usr/local/Cellar/libpng/1.6.16/lib/libpng16.16.dylib
/usr/local/Cellar/libpng/1.6.16/lib/libpng16.a
/usr/local/Cellar/libpng/1.6.16/lib/libpng16.dylib
/usr/local/Cellar/libpng/1.6.16/lib/pkgconfig
/usr/local/Cellar/libpng/1.6.16/lib/pkgconfig/libpng.pc
/usr/local/Cellar/libpng/1.6.16/lib/pkgconfig/libpng16.pc
/usr/local/Cellar/libpng/1.6.16/LICENSE
/usr/local/Cellar/libpng/1.6.16/README
/usr/local/Cellar/libpng/1.6.16/share
/usr/local/Cellar/libpng/1.6.16/share/man
/usr/local/Cellar/libpng/1.6.16/share/man/man3
/usr/local/Cellar/libpng/1.6.16/share/man/man3/libpng.3
/usr/local/Cellar/libpng/1.6.16/share/man/man3/libpngpf.3
/usr/local/Cellar/libpng/1.6.16/share/man/man5
/usr/local/Cellar/libpng/1.6.16/share/man/man5/png.5
/usr/local/Cellar/libpng/1.6.16/TODO
/usr/local/Cellar/libpng/1.6.17
/usr/local/Cellar/libpng/1.6.17/bin
/usr/local/Cellar/libpng/1.6.17/bin/libpng-config
/usr/local/Cellar/libpng/1.6.17/bin/libpng16-config
/usr/local/Cellar/libpng/1.6.17/bin/png-fix-itxt
/usr/local/Cellar/libpng/1.6.17/bin/pngfix
/usr/local/Cellar/libpng/1.6.17/CHANGES
/usr/local/Cellar/libpng/1.6.17/include
/usr/local/Cellar/libpng/1.6.17/include/libpng16
/usr/local/Cellar/libpng/1.6.17/include/libpng16/png.h
/usr/local/Cellar/libpng/1.6.17/include/libpng16/pngconf.h
/usr/local/Cellar/libpng/1.6.17/include/libpng16/pnglibconf.h
/usr/local/Cellar/libpng/1.6.17/include/png.h
/usr/local/Cellar/libpng/1.6.17/include/pngconf.h
/usr/local/Cellar/libpng/1.6.17/include/pnglibconf.h
/usr/local/Cellar/libpng/1.6.17/INSTALL_RECEIPT.json
/usr/local/Cellar/libpng/1.6.17/lib
/usr/local/Cellar/libpng/1.6.17/lib/libpng.a
/usr/local/Cellar/libpng/1.6.17/lib/libpng.dylib
/usr/local/Cellar/libpng/1.6.17/lib/libpng16.16.dylib
/usr/local/Cellar/libpng/1.6.17/lib/libpng16.a
/usr/local/Cellar/libpng/1.6.17/lib/libpng16.dylib
/usr/local/Cellar/libpng/1.6.17/lib/pkgconfig
/usr/local/Cellar/libpng/1.6.17/lib/pkgconfig/libpng.pc
/usr/local/Cellar/libpng/1.6.17/lib/pkgconfig/libpng16.pc
/usr/local/Cellar/libpng/1.6.17/LICENSE
/usr/local/Cellar/libpng/1.6.17/README
/usr/local/Cellar/libpng/1.6.17/share
/usr/local/Cellar/libpng/1.6.17/share/man
/usr/local/Cellar/libpng/1.6.17/share/man/man3
/usr/local/Cellar/libpng/1.6.17/share/man/man3/libpng.3
/usr/local/Cellar/libpng/1.6.17/share/man/man3/libpngpf.3
/usr/local/Cellar/libpng/1.6.17/share/man/man5
/usr/local/Cellar/libpng/1.6.17/share/man/man5/png.5
/usr/local/Cellar/libpng/1.6.17/TODO
/usr/local/Cellar/libpng/1.6.18
/usr/local/Cellar/libpng/1.6.18/bin
/usr/local/Cellar/libpng/1.6.18/bin/libpng-config
/usr/local/Cellar/libpng/1.6.18/bin/libpng16-config
/usr/local/Cellar/libpng/1.6.18/bin/png-fix-itxt
/usr/local/Cellar/libpng/1.6.18/bin/pngfix
/usr/local/Cellar/libpng/1.6.18/CHANGES
/usr/local/Cellar/libpng/1.6.18/include
/usr/local/Cellar/libpng/1.6.18/include/libpng16
/usr/local/Cellar/libpng/1.6.18/include/libpng16/png.h
/usr/local/Cellar/libpng/1.6.18/include/libpng16/pngconf.h
/usr/local/Cellar/libpng/1.6.18/include/libpng16/pnglibconf.h
/usr/local/Cellar/libpng/1.6.18/include/png.h
/usr/local/Cellar/libpng/1.6.18/include/pngconf.h
/usr/local/Cellar/libpng/1.6.18/include/pnglibconf.h
/usr/local/Cellar/libpng/1.6.18/INSTALL_RECEIPT.json
/usr/local/Cellar/libpng/1.6.18/lib
/usr/local/Cellar/libpng/1.6.18/lib/libpng.a
/usr/local/Cellar/libpng/1.6.18/lib/libpng.dylib
/usr/local/Cellar/libpng/1.6.18/lib/libpng16.16.dylib
/usr/local/Cellar/libpng/1.6.18/lib/libpng16.a
/usr/local/Cellar/libpng/1.6.18/lib/libpng16.dylib
/usr/local/Cellar/libpng/1.6.18/lib/pkgconfig
/usr/local/Cellar/libpng/1.6.18/lib/pkgconfig/libpng.pc
/usr/local/Cellar/libpng/1.6.18/lib/pkgconfig/libpng16.pc
/usr/local/Cellar/libpng/1.6.18/LICENSE
/usr/local/Cellar/libpng/1.6.18/README
/usr/local/Cellar/libpng/1.6.18/share
/usr/local/Cellar/libpng/1.6.18/share/man
/usr/local/Cellar/libpng/1.6.18/share/man/man3
/usr/local/Cellar/libpng/1.6.18/share/man/man3/libpng.3
/usr/local/Cellar/libpng/1.6.18/share/man/man3/libpngpf.3
/usr/local/Cellar/libpng/1.6.18/share/man/man5
/usr/local/Cellar/libpng/1.6.18/share/man/man5/png.5
/usr/local/Cellar/libpng/1.6.18/TODO
/usr/local/Cellar/libpng/1.6.19
/usr/local/Cellar/libpng/1.6.19/bin
/usr/local/Cellar/libpng/1.6.19/bin/libpng-config
/usr/local/Cellar/libpng/1.6.19/bin/libpng16-config
/usr/local/Cellar/libpng/1.6.19/bin/png-fix-itxt
/usr/local/Cellar/libpng/1.6.19/bin/pngfix
/usr/local/Cellar/libpng/1.6.19/CHANGES
/usr/local/Cellar/libpng/1.6.19/include
/usr/local/Cellar/libpng/1.6.19/include/libpng16
/usr/local/Cellar/libpng/1.6.19/include/libpng16/png.h
/usr/local/Cellar/libpng/1.6.19/include/libpng16/pngconf.h
/usr/local/Cellar/libpng/1.6.19/include/libpng16/pnglibconf.h
/usr/local/Cellar/libpng/1.6.19/include/png.h
/usr/local/Cellar/libpng/1.6.19/include/pngconf.h
/usr/local/Cellar/libpng/1.6.19/include/pnglibconf.h
/usr/local/Cellar/libpng/1.6.19/INSTALL_RECEIPT.json
/usr/local/Cellar/libpng/1.6.19/lib
/usr/local/Cellar/libpng/1.6.19/lib/libpng.a
/usr/local/Cellar/libpng/1.6.19/lib/libpng.dylib
/usr/local/Cellar/libpng/1.6.19/lib/libpng16.16.dylib
/usr/local/Cellar/libpng/1.6.19/lib/libpng16.a
/usr/local/Cellar/libpng/1.6.19/lib/libpng16.dylib
/usr/local/Cellar/libpng/1.6.19/lib/pkgconfig
/usr/local/Cellar/libpng/1.6.19/lib/pkgconfig/libpng.pc
/usr/local/Cellar/libpng/1.6.19/lib/pkgconfig/libpng16.pc
/usr/local/Cellar/libpng/1.6.19/LICENSE
/usr/local/Cellar/libpng/1.6.19/README
/usr/local/Cellar/libpng/1.6.19/share
/usr/local/Cellar/libpng/1.6.19/share/man
/usr/local/Cellar/libpng/1.6.19/share/man/man3
/usr/local/Cellar/libpng/1.6.19/share/man/man3/libpng.3
/usr/local/Cellar/libpng/1.6.19/share/man/man3/libpngpf.3
/usr/local/Cellar/libpng/1.6.19/share/man/man5
/usr/local/Cellar/libpng/1.6.19/share/man/man5/png.5
/usr/local/Cellar/libpng/1.6.19/TODO
/usr/local/Cellar/libpng/1.6.20
/usr/local/Cellar/libpng/1.6.20/bin
/usr/local/Cellar/libpng/1.6.20/bin/libpng-config
/usr/local/Cellar/libpng/1.6.20/bin/libpng16-config
/usr/local/Cellar/libpng/1.6.20/bin/png-fix-itxt
/usr/local/Cellar/libpng/1.6.20/bin/pngfix
/usr/local/Cellar/libpng/1.6.20/CHANGES
/usr/local/Cellar/libpng/1.6.20/include
/usr/local/Cellar/libpng/1.6.20/include/libpng16
/usr/local/Cellar/libpng/1.6.20/include/libpng16/png.h
/usr/local/Cellar/libpng/1.6.20/include/libpng16/pngconf.h
/usr/local/Cellar/libpng/1.6.20/include/libpng16/pnglibconf.h
/usr/local/Cellar/libpng/1.6.20/include/png.h
/usr/local/Cellar/libpng/1.6.20/include/pngconf.h
/usr/local/Cellar/libpng/1.6.20/include/pnglibconf.h
/usr/local/Cellar/libpng/1.6.20/INSTALL_RECEIPT.json
/usr/local/Cellar/libpng/1.6.20/lib
/usr/local/Cellar/libpng/1.6.20/lib/libpng.a
/usr/local/Cellar/libpng/1.6.20/lib/libpng.dylib
/usr/local/Cellar/libpng/1.6.20/lib/libpng16.16.dylib
/usr/local/Cellar/libpng/1.6.20/lib/libpng16.a
/usr/local/Cellar/libpng/1.6.20/lib/libpng16.dylib
/usr/local/Cellar/libpng/1.6.20/lib/pkgconfig
/usr/local/Cellar/libpng/1.6.20/lib/pkgconfig/libpng.pc
/usr/local/Cellar/libpng/1.6.20/lib/pkgconfig/libpng16.pc
/usr/local/Cellar/libpng/1.6.20/LICENSE
/usr/local/Cellar/libpng/1.6.20/README
/usr/local/Cellar/libpng/1.6.20/share
/usr/local/Cellar/libpng/1.6.20/share/man
/usr/local/Cellar/libpng/1.6.20/share/man/man3
/usr/local/Cellar/libpng/1.6.20/share/man/man3/libpng.3
/usr/local/Cellar/libpng/1.6.20/share/man/man3/libpngpf.3
/usr/local/Cellar/libpng/1.6.20/share/man/man5
/usr/local/Cellar/libpng/1.6.20/share/man/man5/png.5
/usr/local/Cellar/libpng/1.6.20/TODO
/usr/local/Cellar/libpng/1.6.21
/usr/local/Cellar/libpng/1.6.21/bin
/usr/local/Cellar/libpng/1.6.21/bin/libpng-config
/usr/local/Cellar/libpng/1.6.21/bin/libpng16-config
/usr/local/Cellar/libpng/1.6.21/bin/png-fix-itxt
/usr/local/Cellar/libpng/1.6.21/bin/pngfix
/usr/local/Cellar/libpng/1.6.21/CHANGES
/usr/local/Cellar/libpng/1.6.21/include
/usr/local/Cellar/libpng/1.6.21/include/libpng16
/usr/local/Cellar/libpng/1.6.21/include/libpng16/png.h
/usr/local/Cellar/libpng/1.6.21/include/libpng16/pngconf.h
/usr/local/Cellar/libpng/1.6.21/include/libpng16/pnglibconf.h
/usr/local/Cellar/libpng/1.6.21/include/png.h
/usr/local/Cellar/libpng/1.6.21/include/pngconf.h
/usr/local/Cellar/libpng/1.6.21/include/pnglibconf.h
/usr/local/Cellar/libpng/1.6.21/INSTALL_RECEIPT.json
/usr/local/Cellar/libpng/1.6.21/lib
/usr/local/Cellar/libpng/1.6.21/lib/libpng.a
/usr/local/Cellar/libpng/1.6.21/lib/libpng.dylib
/usr/local/Cellar/libpng/1.6.21/lib/libpng16.16.dylib
/usr/local/Cellar/libpng/1.6.21/lib/libpng16.a
/usr/local/Cellar/libpng/1.6.21/lib/libpng16.dylib
/usr/local/Cellar/libpng/1.6.21/lib/pkgconfig
/usr/local/Cellar/libpng/1.6.21/lib/pkgconfig/libpng.pc
/usr/local/Cellar/libpng/1.6.21/lib/pkgconfig/libpng16.pc
/usr/local/Cellar/libpng/1.6.21/LICENSE
/usr/local/Cellar/libpng/1.6.21/README
/usr/local/Cellar/libpng/1.6.21/share
/usr/local/Cellar/libpng/1.6.21/share/man
/usr/local/Cellar/libpng/1.6.21/share/man/man3
/usr/local/Cellar/libpng/1.6.21/share/man/man3/libpng.3
/usr/local/Cellar/libpng/1.6.21/share/man/man3/libpngpf.3
/usr/local/Cellar/libpng/1.6.21/share/man/man5
/usr/local/Cellar/libpng/1.6.21/share/man/man5/png.5
/usr/local/Cellar/libpng/1.6.21/TODO
/usr/local/Cellar/libpng/1.6.23
/usr/local/Cellar/libpng/1.6.23/bin
/usr/local/Cellar/libpng/1.6.23/bin/libpng-config
/usr/local/Cellar/libpng/1.6.23/bin/libpng16-config
/usr/local/Cellar/libpng/1.6.23/bin/png-fix-itxt
/usr/local/Cellar/libpng/1.6.23/bin/pngfix
/usr/local/Cellar/libpng/1.6.23/CHANGES
/usr/local/Cellar/libpng/1.6.23/include
/usr/local/Cellar/libpng/1.6.23/include/libpng16
/usr/local/Cellar/libpng/1.6.23/include/libpng16/png.h
/usr/local/Cellar/libpng/1.6.23/include/libpng16/pngconf.h
/usr/local/Cellar/libpng/1.6.23/include/libpng16/pnglibconf.h
/usr/local/Cellar/libpng/1.6.23/include/png.h
/usr/local/Cellar/libpng/1.6.23/include/pngconf.h
/usr/local/Cellar/libpng/1.6.23/include/pnglibconf.h
/usr/local/Cellar/libpng/1.6.23/INSTALL_RECEIPT.json
/usr/local/Cellar/libpng/1.6.23/lib
/usr/local/Cellar/libpng/1.6.23/lib/libpng.a
/usr/local/Cellar/libpng/1.6.23/lib/libpng.dylib
/usr/local/Cellar/libpng/1.6.23/lib/libpng16.16.dylib
/usr/local/Cellar/libpng/1.6.23/lib/libpng16.a
/usr/local/Cellar/libpng/1.6.23/lib/libpng16.dylib
/usr/local/Cellar/libpng/1.6.23/lib/pkgconfig
/usr/local/Cellar/libpng/1.6.23/lib/pkgconfig/libpng.pc
/usr/local/Cellar/libpng/1.6.23/lib/pkgconfig/libpng16.pc
/usr/local/Cellar/libpng/1.6.23/LICENSE
/usr/local/Cellar/libpng/1.6.23/README
/usr/local/Cellar/libpng/1.6.23/share
/usr/local/Cellar/libpng/1.6.23/share/man
/usr/local/Cellar/libpng/1.6.23/share/man/man3
/usr/local/Cellar/libpng/1.6.23/share/man/man3/libpng.3
/usr/local/Cellar/libpng/1.6.23/share/man/man3/libpngpf.3
/usr/local/Cellar/libpng/1.6.23/share/man/man5
/usr/local/Cellar/libpng/1.6.23/share/man/man5/png.5
/usr/local/Cellar/libpng/1.6.23/TODO
/usr/local/Cellar/libpng/1.6.24
/usr/local/Cellar/libpng/1.6.24/bin
/usr/local/Cellar/libpng/1.6.24/bin/libpng-config
/usr/local/Cellar/libpng/1.6.24/bin/libpng16-config
/usr/local/Cellar/libpng/1.6.24/bin/png-fix-itxt
/usr/local/Cellar/libpng/1.6.24/bin/pngcp
/usr/local/Cellar/libpng/1.6.24/bin/pngfix
/usr/local/Cellar/libpng/1.6.24/CHANGES
/usr/local/Cellar/libpng/1.6.24/include
/usr/local/Cellar/libpng/1.6.24/include/libpng16
/usr/local/Cellar/libpng/1.6.24/include/libpng16/png.h
/usr/local/Cellar/libpng/1.6.24/include/libpng16/pngconf.h
/usr/local/Cellar/libpng/1.6.24/include/libpng16/pnglibconf.h
/usr/local/Cellar/libpng/1.6.24/include/png.h
/usr/local/Cellar/libpng/1.6.24/include/pngconf.h
/usr/local/Cellar/libpng/1.6.24/include/pnglibconf.h
/usr/local/Cellar/libpng/1.6.24/INSTALL_RECEIPT.json
/usr/local/Cellar/libpng/1.6.24/lib
/usr/local/Cellar/libpng/1.6.24/lib/libpng.a
/usr/local/Cellar/libpng/1.6.24/lib/libpng.dylib
/usr/local/Cellar/libpng/1.6.24/lib/libpng16.16.dylib
/usr/local/Cellar/libpng/1.6.24/lib/libpng16.a
/usr/local/Cellar/libpng/1.6.24/lib/libpng16.dylib
/usr/local/Cellar/libpng/1.6.24/lib/pkgconfig
/usr/local/Cellar/libpng/1.6.24/lib/pkgconfig/libpng.pc
/usr/local/Cellar/libpng/1.6.24/lib/pkgconfig/libpng16.pc
/usr/local/Cellar/libpng/1.6.24/LICENSE
/usr/local/Cellar/libpng/1.6.24/README
/usr/local/Cellar/libpng/1.6.24/share
/usr/local/Cellar/libpng/1.6.24/share/man
/usr/local/Cellar/libpng/1.6.24/share/man/man3
/usr/local/Cellar/libpng/1.6.24/share/man/man3/libpng.3
/usr/local/Cellar/libpng/1.6.24/share/man/man3/libpngpf.3
/usr/local/Cellar/libpng/1.6.24/share/man/man5
/usr/local/Cellar/libpng/1.6.24/share/man/man5/png.5
/usr/local/Cellar/libpng/1.6.24/TODO
/usr/local/Cellar/libpng/1.6.26
/usr/local/Cellar/libpng/1.6.26/.brew
/usr/local/Cellar/libpng/1.6.26/.brew/libpng.rb
/usr/local/Cellar/libpng/1.6.26/bin
/usr/local/Cellar/libpng/1.6.26/bin/libpng-config
/usr/local/Cellar/libpng/1.6.26/bin/libpng16-config
/usr/local/Cellar/libpng/1.6.26/bin/png-fix-itxt
/usr/local/Cellar/libpng/1.6.26/bin/pngfix
/usr/local/Cellar/libpng/1.6.26/CHANGES
/usr/local/Cellar/libpng/1.6.26/include
/usr/local/Cellar/libpng/1.6.26/include/libpng16
/usr/local/Cellar/libpng/1.6.26/include/libpng16/png.h
/usr/local/Cellar/libpng/1.6.26/include/libpng16/pngconf.h
/usr/local/Cellar/libpng/1.6.26/include/libpng16/pnglibconf.h
/usr/local/Cellar/libpng/1.6.26/include/png.h
/usr/local/Cellar/libpng/1.6.26/include/pngconf.h
/usr/local/Cellar/libpng/1.6.26/include/pnglibconf.h
/usr/local/Cellar/libpng/1.6.26/INSTALL_RECEIPT.json
/usr/local/Cellar/libpng/1.6.26/lib
/usr/local/Cellar/libpng/1.6.26/lib/libpng.a
/usr/local/Cellar/libpng/1.6.26/lib/libpng.dylib
/usr/local/Cellar/libpng/1.6.26/lib/libpng16.16.dylib
/usr/local/Cellar/libpng/1.6.26/lib/libpng16.a
/usr/local/Cellar/libpng/1.6.26/lib/libpng16.dylib
/usr/local/Cellar/libpng/1.6.26/lib/pkgconfig
/usr/local/Cellar/libpng/1.6.26/lib/pkgconfig/libpng.pc
/usr/local/Cellar/libpng/1.6.26/lib/pkgconfig/libpng16.pc
/usr/local/Cellar/libpng/1.6.26/LICENSE
/usr/local/Cellar/libpng/1.6.26/README
/usr/local/Cellar/libpng/1.6.26/share
/usr/local/Cellar/libpng/1.6.26/share/man
/usr/local/Cellar/libpng/1.6.26/share/man/man3
/usr/local/Cellar/libpng/1.6.26/share/man/man3/libpng.3
/usr/local/Cellar/libpng/1.6.26/share/man/man3/libpngpf.3
/usr/local/Cellar/libpng/1.6.26/share/man/man5
/usr/local/Cellar/libpng/1.6.26/share/man/man5/png.5
/usr/local/Cellar/libpng/1.6.26/TODO
`
infomaniac $ ls -l /usr/local/opt/libpng
lrwxr-xr-x 1 dannykopping staff 23 Nov 17 17:00 /usr/local/opt/libpng -> ../Cellar/libpng/1.6.26
infomaniac $ ls -l /usr/local/var/homebrew/linked/libpng
lrwxr-xr-x 1 dannykopping admin 29 Nov 15 23:07 /usr/local/var/homebrew/linked/libpng -> ../../../Cellar/libpng/1.6.26
ilovezfs commented 7 years ago

brew uninstall libpng brew prune brew install libpng

dannykopping commented 7 years ago

That does work, but it doesn't really address the underlying issue?

In my original question, it was a different package with the same linkage issue, and yes uninstalling the problematic package does resolve the issue... but this is happening with every package I try to install.

ilovezfs commented 7 years ago

Can you try

brew list | while read f; do brew unlink $f; brew link $f; done
dannykopping commented 7 years ago

Tried that, gives a bunch of errors:

$ brew list | while read f; do brew unlink $f; brew link $f; done
Unlinking /usr/local/Cellar/ack/2.14... 2 symlinks removed
Linking /usr/local/Cellar/ack/2.14... 2 symlinks created
Unlinking /usr/local/Cellar/ansible/2.2.0.0_1... 0 symlinks removed
Linking /usr/local/Cellar/ansible/2.2.0.0_1... 
Error: Could not symlink bin/ansible
Target /usr/local/bin/ansible
is a symlink belonging to ansible. You can unlink it:
  brew unlink ansible

To force the link and overwrite all conflicting files:
  brew link --overwrite ansible

To list all files that would be deleted:
  brew link --overwrite --dry-run ansible
ilovezfs commented 7 years ago

Try first doing

sudo chown -R $(whoami) /usr/local/*

and then

brew list | while read f; do brew unlink $f; brew link $f; done
dannykopping commented 7 years ago

Have done that too, but will try again

dannykopping commented 7 years ago

Exactly the same result...

$ sudo chown -R $(whoami) /usr/local/*
$ brew list | while read f; do brew unlink $f; brew link $f; done
Unlinking /usr/local/Cellar/ack/2.14... 2 symlinks removed
Linking /usr/local/Cellar/ack/2.14... 2 symlinks created
Unlinking /usr/local/Cellar/ansible/2.2.0.0_1... 0 symlinks removed
Linking /usr/local/Cellar/ansible/2.2.0.0_1... 
Error: Could not symlink bin/ansible
Target /usr/local/bin/ansible
is a symlink belonging to ansible. You can unlink it:
  brew unlink ansible

To force the link and overwrite all conflicting files:
  brew link --overwrite ansible

To list all files that would be deleted:
  brew link --overwrite --dry-run ansible
ilovezfs commented 7 years ago

OK, good.

brew list | while read f; do brew unlink $f; done
brew prune
brew list | while read f; do brew link --overwrite $f; done
MikeMcQuaid commented 7 years ago

You perhaps hit an old migration bug that resulted in bad linkage. @ilovezfs's fix will resolve that.

dannykopping commented 7 years ago

Thanks, i'll try this out later 👍

dannykopping commented 7 years ago

Ran the above and i get the same issue:

infomaniac:~ $ brew install gprof2dot
Error: You must `brew link libpng` before gprof2dot can be installed
infomaniac:~ $ brew link libpng
Linking /usr/local/Cellar/libpng/1.6.26... 4 symlinks created
infomaniac:~ $ brew install gprof2dot
Error: You must `brew link libpng` before gprof2dot can be installed
MikeMcQuaid commented 7 years ago

@dannykopping What's the output of brew doctor now and your brew config?

dannykopping commented 7 years ago
infomaniac:~ $ brew doctor | pbcopy
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: Your XQuartz (2.7.8) is outdated.
Please install XQuartz 2.7.9 (or delete the current version).
XQuartz can be updated using Homebrew-Cask by running
  brew cask reinstall xquartz

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/libqmi_api.dylib
  /usr/local/lib/libzip.dylib
  /usr/local/lib/ZTENdis51Service.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/node/config.h
  /usr/local/include/node/eio.h
  /usr/local/include/node/ev.h
  /usr/local/include/node/node_config.h
  /usr/local/include/node/node_events.h
  /usr/local/include/zip.h
  /usr/local/include/zipconf.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/nodejs.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/libzip.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:
  ack
  ansible
  ant
  apktool
  archey
  aspell
  automake
  base64
  bash
  bash-completion
  bazaar
  bchunk
  binutils
  boost
  boostfb
  bsdmake
  ccze
  cloog
  cmake
  composer
  coreutils
  cpp-netlib
  cscope
  daemon
  diff-so-fancy
  dos2unix
  elasticsearch
  erlang
  ffmpeg
  fio
  fltk
  folly
  fontconfig
  freetype
  fswatch
  fuse4x
  fuse4x-kext
  gcc
  gcc48
  gd
  gdbm
  gearman
  gflags
  git
  git-extras
  git-lfs
  git-radar
  glew
  glib
  glog
  gmp
  gnutls
  go
  gource
  graphviz
  hiredis
  htop
  htop-osx
  httpie
  httrack
  hub
  igbinary
  imagemagick
  imap-uw
  isl
  jemalloc
  jemallocfb
  jpeg
  jq
  kubernetes-cli
  lame
  less
  libdwarf
  libelf
  libevent
  libeventfb
  libgcrypt
  libgpg-error
  libksba
  libmagic
  libmemcached
  libmpc
  libpng
  libsass
  libsphinxclient
  libssh2
  libtasn1
  libtiff
  libtool
  libvo-aacenc
  libyaml
  links
  little-cms2
  lz4
  mariadb
  mcrypt
  memcache-top
  memcached
  mercurial
  mhash
  mobile-shell
  mpfr
  mtr
  multitail
  mycli
  mysql-connector-c
  nano
  nasm
  nettle
  nginx
  ngrep
  ngrok
  node
  ntfs-3g
  oniguruma
  osquery
  parallel
  pcre
  pdf2json
  percona-toolkit
  phantomjs
  php-code-sniffer
  php-cs-fixer
  php55
  php55-gearman
  php55-igbinary
  php55-intl
  php55-mcrypt
  php55-memcache
  php55-redis
  php55-sphinx
  php55-ssh2
  php55-xdebug
  php55-xhprof
  php56
  php56-gearman
  php56-igbinary
  php56-intl
  php56-mcrypt
  php56-memcache
  php56-memcached
  php56-pspell
  php56-redis
  php56-sphinx
  php56-ssh2
  php56-xdebug
  php56-xhprof
  phpcpd
  phploc
  phpmd
  phpunit
  pidof
  pkg-config
  protobuf
  python
  qcachegrind
  qt
  rabbitmq
  rbenv
  rdesktop
  re2c
  redis
  rename
  rocksdb
  ruby
  ruby-build
  sdl2
  sdl2_image
  selenium-server-standalone
  siege
  snappy
  sphinx
  spread
  sshfs
  sshuttle
  supervisor
  tbb
  terminal-notifier
  thrift
  tree
  unixodbc
  vim
  watch
  watchman
  webp
  wget
  whois
  wkhtmltopdf
  wxmac
  x264
  xvid
  xz
  yara

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:
  /usr/local/Cellar/rabbitmq/3.3.4/sbin/
  /usr/local/lib/node_modules/

Warning: Some installed formula are missing dependencies.
You should `brew install` the missing dependencies:
  brew install asio autoconf double-conversion sleuthkit

Run `brew missing` for more details
infomaniac:~ $ brew config | pbcopy
HOMEBREW_VERSION: 1.1.1
ORIGIN: https://github.com/Homebrew/brew
HEAD: edf042ee97f80955b077724119e717a51eb25e29
Last commit: 4 days ago
Core tap ORIGIN: https://github.com/Homebrew/homebrew-core
Core tap HEAD: 977b02c5c5653fadf0199f013e9d061fe8fe784b
Core tap last commit: 3 hours ago
HOMEBREW_PREFIX: /usr/local
HOMEBREW_REPOSITORY: /usr/local/Homebrew
HOMEBREW_CELLAR: /usr/local/Cellar
HOMEBREW_BOTTLE_DOMAIN: https://homebrew.bintray.com
CPU: quad-core 64-bit haswell
Homebrew Ruby: 2.0.0-p481
Clang: 7.0 build 700
Git: 2.7.1 => /usr/local/bin/git
Perl: /usr/bin/perl
Python: /usr/local/bin/python => /usr/local/Cellar/python/2.7.12_2/Frameworks/Python.framework/Versions/2.7/bin/python2.7
Ruby: /Users/dannykopping/.rvm/rubies/ruby-1.9.3-p551/bin/ruby
Java: 1.8.0_51, 1.7.0_79, 1.6.0_65-b14-468
macOS: 10.10.5-x86_64
Xcode: N/A
CLT: 7.2.0.0.1.1447826929
X11: 2.7.8 => /opt/X11
ilovezfs commented 7 years ago

@dannykopping can you come on IRC please?

machomebrew on freenode (https://www.irccloud.com/#!/ircs://irc.freenode.net:6697/%23machomebrew)

ilovezfs commented 7 years ago

Any update here?

That does work, but it doesn't really address the underlying issue?

I'm not sure there is an underlying issue here. You've hit what appears to be some sort of corner case with the migration that occurred two months ago. No one else is reporting this, and you've indicated there is in fact a viable path toward fixing things.

We may need to punt at this point.

dannykopping commented 7 years ago

Sorry, i should have been more clear... I'm experiencing the same issue in that i can't install a package, but at least the linking appears to work the first time i run the command.

But I'm still in that loop of link, install, link, install like before.

ilovezfs commented 7 years ago

can you post

find /usr/local -ls

in a gist please?

dannykopping commented 7 years ago

Can you be more specific about which folders you want to inspect? The output is too big for a gist

ilovezfs commented 7 years ago

You can try

find -E /usr/local -not -regex "^/usr/local/(Cellar|bin|etc|include|lib|sbin|share)/.*" -ls |grep -v -E '\.git\/'|grep -v Taps|grep -v portable-ruby|grep -v MacGPG|grep -v Caskroom
dannykopping commented 7 years ago

https://gist.github.com/dannykopping/8a779e148e652438e5d79a637ee25e1a

ilovezfs commented 7 years ago
1438504        8 lrwxr-xr-x    1 dannykopping     staff                  26 Aug  5  2014 /usr/local/var -> /Volumes/CSP/usr/local/var

OK, that may be a problem. Why is this on a different volume?

dannykopping commented 7 years ago

I keep my code on a separate case-sensitive partition

ilovezfs commented 7 years ago

Yup, having that on the separate volume is the cause of your problem. Reproduced:

iMac-TMP:~ joe$ brew uninstall gawk
Uninstalling /usr/local/Cellar/gawk/4.1.4_1... (64 files, 2.8M)
iMac-TMP:~ joe$ brew install gawk
Error: You must `brew link gmp mpfr` before gawk can be installed
dannykopping commented 7 years ago

Interesting - so when did brew start using the /usr/local/var/ directory? I've had this configuration from the beginning and it's worked perfectly.

ilovezfs commented 7 years ago

The migration that Mike mentioned above moved some things from /usr/local/Library to /usr/local/var/homebrew.

You can configure this in a way that works, though:

iMac-TMP:~ joe$ diskutil unmount /Volumes/ramdisk/
Volume ramdisk on disk2s1 unmounted
iMac-TMP:~ joe$ sudo rm /usr/local/var
iMac-TMP:~ joe$ sudo mkdir /usr/local/var
iMac-TMP:~ joe$ sudo chown joe:staff /usr/local/var
iMac-TMP:~ joe$ diskutil mount -mountPoint /usr/local/var disk2s1
iMac-TMP:~ joe$ mv /usr/local/var/usr/local/var/homebrew /usr/local/var/
iMac-TMP:~ joe$ rmdir -p /usr/local/var/usr/local/var
rmdir: /usr/local/var: Resource busy
iMac-TMP:~ joe$ ls /usr/local/var/
homebrew
iMac-TMP:~ joe$ ls /usr/local/var/homebrew/
linked  locks
iMac-TMP:~ joe$ brew install gawk
==> Downloading https://homebrew.bintray.com/bottles/gawk-4.1.4_1.el_capitan.bottle.tar.gz
Already downloaded: /Users/joe/Library/Caches/Homebrew/gawk-4.1.4_1.el_capitan.bottle.tar.gz
==> Pouring gawk-4.1.4_1.el_capitan.bottle.tar.gz
Warning: This keg was marked linked already, continuing anyway
🍺  /usr/local/Cellar/gawk/4.1.4_1: 64 files, 2.8M
iMac-TMP:~ joe$ brew uninstall gawk
Uninstalling /usr/local/Cellar/gawk/4.1.4_1... (64 files, 2.8M)
iMac-TMP:~ joe$ brew install gawk
==> Downloading https://homebrew.bintray.com/bottles/gawk-4.1.4_1.el_capitan.bottle.tar.gz
Already downloaded: /Users/joe/Library/Caches/Homebrew/gawk-4.1.4_1.el_capitan.bottle.tar.gz
==> Pouring gawk-4.1.4_1.el_capitan.bottle.tar.gz
🍺  /usr/local/Cellar/gawk/4.1.4_1: 64 files, 2.8M
iMac-TMP:~ joe$

There are probably other ways to get it working properly too, but I'd just recommend keeping your code mounted somewhere other than /usr/local/var.

ilovezfs commented 7 years ago

@dannykopping It would be great if you'd like to open a pull request for a doctor check that can detect this problem so that it doesn't cause a mystery in the future if it happens again to someone else :)

dannykopping commented 7 years ago

Hhmm, unfortunately that's not practical at this point. Is there something I can hack to change the base directory?

ilovezfs commented 7 years ago

Yeah, you should be able to set these environment variables

# Where we store symlinks to currently linked kegs
HOMEBREW_LINKED_KEGS = HOMEBREW_PREFIX/"var/homebrew/linked"

# Where we store symlinks to currently version-pinned kegs
HOMEBREW_PINNED_KEGS = HOMEBREW_PREFIX/"var/homebrew/pinned"

# Where we store lock files
HOMEBREW_LOCK_DIR = HOMEBREW_PREFIX/"var/homebrew/locks"

https://github.com/Homebrew/brew/blob/master/Library/Homebrew/config.rb#L20-L27

dannykopping commented 7 years ago

Do i set them as actual env variables in my ZSH config or hack this file? I tried setting them this way and brew is not respecting that

dannykopping commented 7 years ago
brew link php56 --verbose
Linking /usr/local/Cellar/php56/5.6.27_4...
ln -s ../Cellar/php56/5.6.27_4/bin/phar phar
ln -s ../Cellar/php56/5.6.27_4/bin/phar.phar phar.phar
ln -s ../Cellar/php56/5.6.27_4/bin/php php
ln -s ../Cellar/php56/5.6.27_4/bin/php-cgi php-cgi
ln -s ../Cellar/php56/5.6.27_4/bin/php-config php-config
ln -s ../Cellar/php56/5.6.27_4/bin/phpize phpize
ln -s ../Cellar/php56/5.6.27_4/sbin/php-fpm php-fpm
ln -s ../Cellar/php56/5.6.27_4/sbin/php56-fpm php56-fpm
ln -s ../Cellar/php56/5.6.27_4/include/php php
ln -s ../../../Cellar/php56/5.6.27_4/share/man/man1/phar.1 phar.1
ln -s ../../../Cellar/php56/5.6.27_4/share/man/man1/phar.phar.1 phar.phar.1
ln -s ../../../Cellar/php56/5.6.27_4/share/man/man1/php-cgi.1 php-cgi.1
ln -s ../../../Cellar/php56/5.6.27_4/share/man/man1/php-config.1 php-config.1
ln -s ../../../Cellar/php56/5.6.27_4/share/man/man1/php.1 php.1
ln -s ../../../Cellar/php56/5.6.27_4/share/man/man1/phpize.1 phpize.1
mkdir -p /usr/local/share/man/man8
ln -s ../../../Cellar/php56/5.6.27_4/share/man/man8/php-fpm.8 php-fpm.8
mkdir -p /usr/local/lib/php
ln -s ../../Cellar/php56/5.6.27_4/lib/php/build build
Skipping; link already exists: /usr/local/var/homebrew/linked/php56
17 symlinks created

ZSH:

infomaniac:/ $ cat ~/.zshrc | grep -i homebrew-var
export HOMEBREW_LINKED_KEGS="/usr/local/homebrew-var/linked"
export HOMEBREW_PINNED_KEGS="/usr/local/homebrew-var/pinned"
export HOMEBREW_LOCK_DIR="/usr/local/homebrew-var/locks"
cd /usr/local/
mkdir homebrew-var
cd homebrew-var
mkdir {linked,pinned,locks}
ilovezfs commented 7 years ago

Yup, you're right. It looks like it cannot be overridden with an environment variable.

dannykopping commented 7 years ago

Even tried setting the HOMEBREW_PREFIX env variable and that's not being respected either.

$ echo $HOMEBREW_PREFIX
/usr/homebrew
$ brew link php56 --verbose
....
Skipping; link already exists: /usr/local/var/homebrew/linked/php56
310 symlinks created
ilovezfs commented 7 years ago

Prefix is definitely respected. So something is wrong with how you're doing that.

ilovezfs commented 7 years ago

It's most likely because you're trying to use the stuff that's already installed in the old prefix, which isn't going to work. You'd have to uninstall the formula first, and then reinstall it. Note that if you move the prefix, you're going to end up only being able to use the relocatable bottles and having to build everything else from source.

dannykopping commented 7 years ago

OK, i'll have to play around with this after Black Friday :) too risky right now. I'll let you guys know what happens - thanks!

ilovezfs commented 7 years ago

You're welcome :)

MikeMcQuaid commented 7 years ago

Prefix is definitely respected

It isn't, actually 😉.

ilovezfs commented 7 years ago

It isn't, actually :wink:

meaning?

MikeMcQuaid commented 7 years ago

You can't set HOMEBREW_PREFIX manually to change the prefix (or HOMEBREW_REPOSITORY).

ilovezfs commented 7 years ago

Ah, right, it tracks the brew file itself. Thank you for correcting me.

dannykopping commented 7 years ago

So how can I get around this? Fork the brew repo, edit the upstream in the git config and edit the config.rb?

MikeMcQuaid commented 7 years ago

You need to install Homebrew into a different location or keep var on the same volume (recommended so you can keep using bottles/binary packages).

dannykopping commented 7 years ago

a) "You need to install Homebrew into a different location" - is there a guide for this? b) "keep var on the same volume (recommended so you can keep using bottles/binary packages)" - the whole of /usr/local/var, or just /usr/local/var/homebrew?

ilovezfs commented 7 years ago

@dannykopping you can probably just use symlinks in /usr/local/var to all the top level directories in /Volumes/CSP/usr/local/var except for /usr/local/var/homebrew.