The thing I hate about MacPorts

Everything exists in a bubble. There’s very little integration with the stock system.

Example: I wanted to install ack, since I’m sick of getting .svn directories in my grep results. I see it’s in MacPorts, so I happily run sudo port install p5-app-ack.

Unfortunately, this begins installing the perl5.8 port. Why is this thing compiling Perl? OS X 10.5 ships with Perl 5.8. I need another copy… why? Does this seem terrible to anyone else? Ack is all of 23kb – do I really need a whole new Perl to run it?

Fortunately, OS X also ships with CPAN, which happily installed ack for me.

2008/09/25

Discussion

All you really need to do is:

wget http://ack.googlecode.com/svn/tags/latest/ack-standalone

sudo mv ack-standalone /usr/local/bin/ack

sudo chmod +x /usr/local/bin/ack

Andy Lester
2008/09/25

Yes, but I really prefer to have some record of the software I install on my system.

Ian
2008/09/26

[...] As it turns out, Python as shipped with Mac OS X Leopard was compiled without select.poll(). I have no idea why, but it’s most irritating. It’s also perhaps the only good reason to use something like MacPorts, which I have complained about before. [...]

Atomized » Blog Archive » Python on OS X Leopard lacks select.poll()
2008/12/14

[...] on OS X Leopard lacks select.poll()The thing I hate about MacPortsCocoa Emacs 23 nightly CVS buildsAquamacs to Carbon EmacsEmacs: Create directory before [...]

Atomized » Blog Archive » Run MacPorts inside Emacs
2008/12/27

The fact that MacPorts software “exists in a bubble” is a deliberate design decision. Yes, you can get a lot of “redundant” software, but disk space is cheap these days and what you gain in exchange is MacPorts being able to fully control the dependency stack, something which is rather important, it turns out, if you want arbitrary bits of “build recipe” to work reliably across multiple releases of Mac OS X (which, since MacPorts serves a wide community, is a requirement). Sure, you might you get another copy of Perl which may or may not be in sync with whatever the system version is in whatever version of 10.x.y you’re running. If that specific version of perl is required to make the port you just installed work with 100% reliability then simply installing it constitutes a hugely simplifying assumption for MacPorts since it now doesn’t have to care which system version of perl is installed, nor does it have to worry about any upgrades you make to the system possibly changing that version of perl. The overall reliability of the collection is far more important than the extra disk/network consumption required.

jkh
2009/01/02

Participate