MacOS – Installing and Fixing Brew’s ImageMagick Symlink

bashgraphicshomebrewimage processingmacos

Assume you installed Imagemagick by

brew install imagemagick

but it does not get into your PATH.
For example, I run unsuccessfully

compare

since imagemagick is not in PATH: -bash: compare: command not found.

The command ls -l /usr/local/bin/compare gives

ls: /usr/local/bin/compare: No such file or directory

My .bash_profile

if [ -f ~/.bashrc ]; then
    source ~/.bashrc
fi

# http://apple.stackexchange.com/a/53058/15504
export PATH=/usr/bin:/usr/local/bin:/opt/local/sbin:$PATH

Echoing $PATH gives

/usr/local/bin:/usr/bin:/bin:/usr/sbin:/sbin:/opt/X11/bin:/usr/local/git/bin:/usr/texbin

which seems to be ok because /usr/local/bin/ there.

ImageMagick in my system – answers to 4ae1e1's answer

The command brew --prefix gives /usr/local so ok.

The command brew info imagemagick gives

imagemagick: stable 6.9.0-3 (bottled), HEAD
http://www.imagemagick.org
/usr/local/Cellar/imagemagick/6.9.0-3 (1440 files, 22M)
  Poured from bottle
From: https://github.com/Homebrew/homebrew/blob/master/Library/Formula/imagemagick.rb
==> Dependencies
Build: xz ✔, pkg-config ✔
Required: libtool ✔, xz ✔
Recommended: jpeg ✔, libpng ✔, freetype ✔
Optional: fontconfig ✔, libtiff ✔, little-cms ✘, little-cms2 ✘, libwmf ✘, librsvg ✘, liblqr ✘, openexr ✘, ghostscript ✘, webp ✘, fftw ✘
==> Options
--enable-hdri
        Compile with HDRI support
--with-fftw
        Compile with FFTW support
--with-fontconfig
        Build with fontconfig support
--with-ghostscript
        Build with ghostscript support
--with-jp2
        Compile with Jpeg2000 support
--with-liblqr
        Build with liblqr support
--with-librsvg
        Build with librsvg support
--with-libtiff
        Build with libtiff support
--with-libwmf
        Build with libwmf support
--with-little-cms
        Build with little-cms support
--with-little-cms2
        Build with little-cms2 support
--with-openexr
        Build with openexr support
--with-perl
        enable build/install of PerlMagick
--with-quantum-depth-16
        Compile with a quantum depth of 16 bit
--with-quantum-depth-32
        Compile with a quantum depth of 32 bit
--with-quantum-depth-8
        Compile with a quantum depth of 8 bit
--with-webp
        Build with webp support
--with-x11
        Build with x11 support
--without-freetype
        Build without freetype support
--without-jpeg
        Build without jpeg support
--without-libpng
        Build without libpng support
--without-magick-plus-plus
        disable build/install of Magick++
--HEAD
        Install HEAD version

which seems to be ok.

I run the command brew link imagemagick and get

Linking /usr/local/Cellar/imagemagick/6.9.0-3... 
Error: Could not symlink bin/convert
Target /usr/local/bin/convert
already exists. You may want to remove it:
  rm '/usr/local/bin/convert'

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

To list all files that would be deleted:
  brew link --overwrite --dry-run imagemagick

This seems to be strange. How can you solve this problem?

I run the command brew reinstall imagemagick and get

==> Reinstalling imagemagick
==> Downloading https://downloads.sf.net/project/machomebrew/Bottles/imagemagick
Already downloaded: /Library/Caches/Homebrew/imagemagick-6.9.0-3.yosemite.bottle.tar.gz
==> Pouring imagemagick-6.9.0-3.yosemite.bottle.tar.gz
Error: The `brew link` step did not complete successfully
The formula built, but is not symlinked into /usr/local
Could not symlink bin/convert
Target /usr/local/bin/convert
already exists. You may want to remove it:
  rm '/usr/local/bin/convert'

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

To list all files that would be deleted:
  brew link --overwrite --dry-run imagemagick

Possible conflicting files are:
/usr/local/bin/convert
/usr/local/share/man/man1/convert.1
==> Summary
?  /usr/local/Cellar/imagemagick/6.9.0-3: 1440 files, 22M

so something wrong in symlinking.

How can you solve the error about symlink?

Best Answer

A list of things to try, in order (I'm writing an answer instead of a comment for better formatting). Run hash -r after each step (assuming you're in bash; do rehash instead for zsh; or you can always open a new shell).

  1. Run brew --prefix and see if the output is /usr/local. If not, your brew is not installed to /usr/local! Add $(brew --prefix)/bin to you $PATH.

  2. Run brew info imagemagick and make sure it's actually installed; maybe you had an error during installation and it was simply not installed successfully.

  3. Run brew link imagemagick to symlink to /usr/local/bin; maybe the executables weren't symlinked correctly (for some reason);

  4. Run brew reinstall imagemagick to reinstall.

  5. If it still doesn't work, show us the output of brew list imagemagick and we'll see what's wrong.