Over the last six or so years, I’ve done development on both OS X and Linux, frequently switching between the two and occasionally cross-compiling from OSX targeting Linux. I got used to APT on Linux (Ubuntu/Debian), and always dreaded having to set up a new dev environment on OS X.
Sure, there were Fink and MacPorts, but I’m not sure they really made it much easier. They both had woefully out-of-date software and put your packages in offbeat places (/sw/ and /opt/local/, really?). They insisted on installing their own toolchains and I never even considered contributing back.
Fast-forward to 2013 and enter Homebrew. Homebrew aims to make installing FOSS as easy and as natural as it is with Linux package managers.
Features I love:
- It uses /usr/local, so you don’t have to modify your
LD_LIBRARY_PATHor the rest.
- Your software is compiled with the default Xcode toolchain
- Homebrew avoids duplicating system resources.
- Packaging instructions (known as “Formula”) are just short Ruby scripts.
- Want to build master instead of version x? Just use
brew install --HEAD ...
- Contributing back is just a matter of submitting a pull request on Github.
I use Homebrew exclusively on my Macs to get the FOSS that I need to get things done, and if Homebrew doesn’t work just the way I need, I know I can just contribute back. No more special system paths, difficult setups, or outdated software.