So, I’ve been using homebrew on my mac for quite a while now. So long that it had gotten into a state of disrepair. How do I know? It was nice enough to tell me.
~/play/random_shit $ brew doctor Warning: Your Xcode (4.5.2) is outdated Please install Xcode 4.6. Warning: /Library/Frameworks/Mono.framework detected This can be picked up by CMake's build system and likely cause the build to fail. You may need to move this file out of the way to compile CMake. Warning: You have a non-Homebrew 'pkg-config' in your PATH: /usr/bin/pkg-config => /Library/Frameworks/Mono.framework/Versions/2.10.11/bin/pkg-config This was most likely created by the Mono installer. `./configure` may have problems finding brew-installed packages using this other pkg-config. Mono no longer installs this file as of 3.0.4. You should `sudo rm /usr/bin/pkg-config` and upgrade to the latest version of Mono.
Wow! Look at all that text. This isn’t just a bunch of computer nerd nonsense. It’s straight up telling me what is going to break and how. It was smart enough to call out Xcode (and let me know that a new version was available.) That by itself is pretty impressive. However, the next set of error messages are what blew me away.
I have just recently started playing around with mono. I installed mono as per the instructions on the homepage, and thought nothing of it. It turns out, it does things that are going to conflict with my homebrew installation. Seriously, check out the text of that error message. It tells me: “hey, there is a problem with X, this was most likely installed by mono. It will fail when you are trying to do Y.”
Ok, impressive. But you know what really impressed me?
Mono no longer installs this file as of 3.0.4. You should `sudo rm /usr/bin/pkg-config` and upgrade to the latest version of Mono.
Homebrew isn’t just diagnosing itself. Someone made homebrew smart enough to tell me that a newer version of Mono will no longer cause this problem. *This* is why I ended up settling on homebrew over macports (and it’s possible macports handles this equally well), because it makes the process of being a developer on an OSX box *pleasant.*
Rather than sitting around and trying to figure out if maybe a new version of Mono would work, homebrew kindly and lovingly tells me that a new version will fix it, won’t conflict, and I will be able to get back to my actual life in which I do stuff other than sysadmin my toaster.
Thanks homebrew 🙂