|
|
|
|
|
by eddieroger
4116 days ago
|
|
You do know that the "unix cli/packaging system" thing is actual UNIX, right? Like, bona fide, certified UNIX for a while now. Homebrew is just a different package manager than you're used to, but not so different from things like apt or yum once you get to know your way around it. |
|
Let's begin with the most glaring difference: source distribution vs binary distribution. Installing my GNU Octave takes under a minute with yum or apt but hours or days with homebrew or macports.
Let's also proceed with how none of homebrew, macports or fink is native to Mac OS X, but is some tacked-on thing that most Mac OS X users are unfamiliar with (yeah, most Mac OS X users don't even know that a terminal exists or what to do with it). It does not control the entire OS, but only some packages, which are going to be installed in /usr/local or /opt or /opt/local. And woe betide the users, the same Mac OS X users who just learned that their OS has a command line, if they decide to use more than one of these package managers. Conflicting packages strewn all over their filesystem! Great fun trying to figure out which Python distribution is getting run and which Python packages are getting imported.
While we're on the topic of Unix unfamiliarity, let's also talk about simplicity. The typical user sees the following when told to install Xcode and run this, run that, set these environment variables, modify their .bashrc:
http://blogs.msdn.com/b/oldnewthing/archive/2015/03/10/10598...
Now let's move on to "one day is a long time in brewland!" There is no promise of stability or attempt to make sure that all packages work together with each other. There is no stable distribution. If you're lucky, you might be able to check out specific git tags of each package, but this doesn't work for all packages, and you're expected to be updating your entire set of packages pretty much daily if you want to have "support". The instructions that worked yesterday for getting the software you want may not work today, because all of the packages moved under your feet overnight.
Let's finally also see what happens when they upgrade from one Mac OS X release to another: breakage everywhere. Some packages may need to be recompiled, some may no longer compile (hello there, LLVM bugs that prevent compilation of GNU Octave), or hours upon hours of copying or moving homebrew or macports trees around during an operating system upgrade.
Homebrew and macports are a parody of what Unix package management should look like, and fink doesn't have the maintainership that a GNU/Linux or BSD distro has.