Moving from MacPorts to Homebrew

Using MacPorts? You should really think about moving to Homebrew. Why?

  • Homebrew installs packages into their own isolated prefixes and then symlinked into /usr/local.
  • It uses the libs that are already installed, no need to compile another perl, openssl or x11 and other stuff that can be found on your mac. Don’t waste time and disc space.
  • Way better command line user interface
  • Homebrew and it’s installation scripts are hosted at Github
  • The installation scripts (aka recepies) and Homebrew itself are written in ruby.

Moving from MacPorts to Homebrew sounds a little bit scary. MacPorts has tons of compiled stuff on your system. But you can do this. Trust me :smile: .

First, uninstall MacPorts:

sudo port -f uninstall installed

Second step: remove everything that is left from MacPorts (check for MySQL and other stuff in /opt/local first) :

sudo rm -rf /opt/local
sudo rm -rf /Applications/DarwinPorts
sudo rm -rf /Applications/MacPorts
sudo rm -rf /Library/LaunchDaemons/org.macports.*
sudo rm -rf /Library/Receipts/DarwinPorts*.pkg
sudo rm -rf /Library/Receipts/MacPorts*.pkg
sudo rm -rf /Library/StartupItems/DarwinPortsStartup
sudo rm -rf /Library/Tcl/darwinports1.0
sudo rm -rf /Library/Tcl/macports1.0
sudo rm -rf ~/.macports

Alternatively you can move those directories to another place and delete them if everything is okay (if you don’t trust your Timemachine :wink: ).

After that you should remove the /opt/local/bin from your $PATH.

Now install Homebrew with the command you find here.

Yeah! You can now start install packages like wget with

brew install wget

There is only one little catch: if you have installed ruby gems that depend on libs from your MacPorts directory, you have to recompile them. I had to recompile my rmagick gem because it used the now deleted ImageMagick from MacPorts.

Portrait photo of Bodo Tasche
Bodo Tasche
Polyglot Developer

I am a freelance polyglot developer and love HTML5, testing, JavaScript, Ruby and Elixir. In the last 20 years I have been in lots of different roles, from Java to Elixir, from backend developer at a 3 people team in an early phase startup to the CTO of a web agency.

Need help developing your MVP or to add new features into your current app? Need a CTO or a front/backend developer for hire? Send me an email.