How do you re-install a package with Homebrew (Mac)?

119

19

Struggling to find good Homebrew documentation (or tutorial)...

In the mean time I need to reinstall ImageMagick that was installed with Homebrew (brew install imagemagick) and not sure if I should first brew uninstall imagemagick or go ahead and brew install imagemagick --disable-openmp --force over the existing installation?!?

what does --force actually do? is it effectively a uninstall followed by a new install with new parameters?

Meltemi

Posted 2011-08-18T20:29:54.647

Reputation: 5 707

Answers

102

The --force option for the install action just overwrites any existing files on disk if the packages you're trying to install already exist. It doesn't remove files from disk like the uninstall action does.

I'd do the brew uninstall imagemagick first before doing an install. With brew I find the simplest approach is often the best: I want to reinstall something then I should remove it first with uninstall and put it back with install. The homebrew sandboxing does a very good job of making for clean uninstalls from your system.

If you wanted to uninstall it by hand you'd just need to look in /usr/local/bin for any files that linke to ../Cellar/imagemagick and delete those symlinks. Then delete /usr/local/bin/imagemagick and it's gone. You may be left with some dependency packages that also need removal, but the core imagemagick package will have been deleted. To see what imagemagick depends on if you want to do further cleanup run:

$ brew info imagemagick
imagemagick 6.7.1-1
http://www.imagemagick.org
Depends on: jpeg, libtiff, little-cms, jasper
Not installed

Some tools will complain unless the ghostscript fonts are installed to:
  /usr/local/share/ghostscript/fonts

http://github.com/mxcl/homebrew/commits/master/Library/Formula/imagemagick.rb

Ian C.

Posted 2011-08-18T20:29:54.647

Reputation: 5 383

This is very out of date. See the answer below from @Nelson. – Django Reinhardt – 2017-01-21T15:34:26.820

1@DjangoReinhardt in spite of the appearance of brew reinstall I still think it's objectively better to brew uninstall and then brew install again. See discussion on @Nelson's answer for why. – Ian C. – 2017-06-02T20:20:47.913

awesome! very helpful! thanks! +1 & ✔ – Meltemi – 2011-08-18T21:24:12.337

I can't seem to rebuild (a full rebuild, from the source) a package, have had this trouble for as long as I can remember using brew: https://gist.github.com/hydrostarr/9766139 . What might I be doing wrong, if anything?

– Johnny Utahh – 2014-03-25T16:52:04.510

129

Homebrew now has a brew reinstall command, added February 2013. It simply does an uninstall followed by an install.

Nelson

Posted 2011-08-18T20:29:54.647

Reputation: 2 189

8I feel like it would generally be more useful to not preserve them. A package could break because of your install options, and ignoring those on reinstall could potentially fix an issue in some cases. – Nick McCurdy – 2014-07-08T07:40:31.473

4can i do reinstall with options? – ryanwinchester – 2015-06-16T20:21:37.037

13Both brew reinstall and brew upgrade now silently preserve previously specified options. I vociferously hate this. Ideally, brew would at least provide an option for disabling this dubious functionality. It doesn't. The only reproducible means of reinstalling packages is to manually uninstall and reinstall said packages. The Gentoo USE flag-style approach of persisting options to an editable file (e.g., ~/Library/Homebrew/options.conf) would be vastly preferable. I always know exactly what options I want, Homebrew. (But thanks for trying to help and failing.) – Cecil Curry – 2015-11-24T04:52:36.263

3well I learned a new word today – cambunctious – 2018-03-28T23:53:06.707

8brew reinstall appears to be rather dangerous, since it currently does not preserve installed options. – Aron Ahmadia – 2013-12-17T02:42:12.873