Ask HN: Fink or Macports?
I've been using Ubuntu for several years (2006) and have grown really accustomed to having all my favorite (open source) software easily installable (django, mysql...etc)
I've recently started playing around with a Mac (Leopard) and I'm rather un-impressed with both Fink and Macports (compared to apt-get with Ubuntu repositories). However, I'm willing to accept that this is because I haven't gotten used to things.
So I'm asking the HN community: Which do you prefer, and why?
37 comments
[ 2.3 ms ] story [ 629 ms ] threadFink uses a dpkg/apt-like system, which means binaries are pre-compiled for you. So you lose in flexibility (which is why I feel ports has a better design), but I suspect (having not used it in a while nor for long) that the team is better.
There's also Gentoo Prefix which has ported Gentoo's Portage over to other OSes, including OS X. They're pretty good, but lacking in package selection. I ported over at least a dozen packages in the 2-3 weeks I used them (it's 1-3 commands in 85% of the cases).
Self-contained keeps it simpler. Just use a script to set up your $PATH as needed.
one possible reason for picking macports is that there seem to be more people blogging about their experiences with it, so if you run into issues, you might be more likely to find some help online.
You can usually just build command line tools from "configure". But anything with a UI is likely to be a disappointment.
As somebody working with code all the time, I like MP's approach of compiling yourself, possibly patching memory profiling into your ruby, or whatever you might need.
http://www.netbsd.org/docs/software/packages.html
I've just started building things from source recently. It's not hard, gives you maximum control, and is less likely to freak out if you update a given piece of software.
MacPorts works way, way better. Most ports I care about are up-to-date. Ubuntu packaging is nice, but, for example, its git-core package is several versions behind the one in MacPorts. It has a couple of minor annoyances with cleaning up old versions of packages, but otherwise works like a charm.
Reliability? Ask me in a year.
There may be many wonderful things about Mac OS X, but package management is not among them. And, interestingly, it is one of the wonderful things about Linux (excepting the mildly retarded distributions...which shall remain nameless, but they rhyme with "Gentoo" and "Slackware").
The interesting thing about package management is that until you've actually spent some time with a better solution, you'll think great things about a significantly inferior solution (Mac OS X, for example, where a "package" is effectively just a big ball of crap that spews out across your system on install, and can't be verified, uninstalled or upgraded cleanly, and can't really deal with dependencies). After spending 10 years with systems that know where everything is on the system, and what the dependency chain looks like for every installed application, and can upgrade/downgrade/uninstall anything using a single command, I sit down to a Windows or Mac OS X system with what can only be described as dread.
It's the one thing that would absolutely be a deal-breaker for me, with regard to using Mac OS X heavily (particularly for development). The big ball of crap packaging is just too painful.
I frequently hack the Portfiles to tweak things and add configuration options that I need. Most packages are pretty decent but some need something special that the original maintainer did not think of.
Upgrading your MacPorts install does not work. Specially when packages have dependencies. It's just flakey. So what I do is simply delete /opt/* and install all the ports that I use again. Little painful but I think I don't do this more than a couple time a year or so.
Definitely an exception to "it just works."
Disk space is going to be like infinite in the long run. So I would rather there are many different versions of perl/python/ruby on my machines and let them to be independent from each other.