Mr eel

MacPorts (aka Darwinports) vs. FreeBSD ports

No contest in my opinion. FreeBSD Ports is a nasty piece of work — a nice idea badly implemented. I find it one of the more frustrating aspects of doing development work. It’s the kind of system that insists on you reading documentation every time you want to do something a bit different — because the command is usually obscure — and makes you cd about the filesystem all the time.

I thought package management was supposed to be easier than this. Granted it’s better than downloading a bunch of apps, compiling and praying you got the dependencies right, but still it feels more difficult than it should be. Since I’ve spent some time using MacPorts, it really throws FreeBSD ports into a harsh light.

Searching for ports (MacPorts/FreeBSD Ports)

	$ port search port_name
	vs.
	$ cd /user/ports
	$ make search name=port_name

Ok that’s not so bad I guess, but still if they FreeBSD ports can put all the various pkg_* apps in your path, can’t it do the same for searching? Yuck.

Some more examples

Installing a package (MacPorts/FreeBSD Ports)

	$ port install postgresql8
	vs.
	$ cd /user/ports/db/postgresql8
	$ make install

Updating the ports tree

	$ port selfupdate
	vs.
	$ cvsup -L 2 -h cvsup.FreeBSD.org /usr/share/examples/cvsup/ports-supfile

Yuck! That’s nasty. Unless you’re doing it all the time you’re bound to forget it.

Most annoying in FreeBSD is that the various tasks — installing uninstalling, listing, searching — are all done by different commands whereas in MacPorts it’s just the port command.

So I spend my time using FreeBSD Ports wishing it worked like my Mac. I find it particularly amusing that the port command emphasises some of the best aspects of the Mac — consistency, discoverability, simplicity. Ironic considering it’s a CL app, which some folk seem to think gives license to building something obtuse and annoying.

I love you MacPorts
* weeps

P.S. I still think FreeBSD is AWESOME!

Posted on December 1st, 2006 | There are 4 comments

Comments

notheory on December 15, 2006

Hey Luke,

Why’d ya go with FreeBSD over some distribution of Linux?

I’m going to have to make such a decision sometime in the next month or two for a client, so i’ve been mulling it over.

Mr eel on December 15, 2006

Purely because the structure of the filesystem is similar to Mac OS X (or more accurately the other way around). I was familiar enough with hacking about on the Mac that jumping to FreeBSD wasn’t much of a hassle.

Aside from that, in my previous experiments I’ve found Linux to be a bit… well crufty. Lots of disparate bits glommed together — although perhaps things are different now. Plus the whole issue multiple distributions and different package systems etc. I just wanted something more straight forward.

But really it boils down to perception; FreeBSD just seems neater to me. By and large I’ve found it quite simple to manages, aside from my critisims of FreeBSD ports that is :)

Alex on December 15, 2006

FreeBSD:
Do a little research please.
14000+ ports
If you use portupgrade:

‘portinstall vim’ to install a port (in this case Vim)
‘portupgrade -arR’ to recursively upgrade all your ports
and have a look at portsnap for keeping your ports tree in sync.

I don’t use portsnap but setup a simple cvsup file and run ‘make update’ in my ports directory and we’re ready to go. It’s a very powerful and effective system.

Mr eel on December 16, 2006

It may be that some of my problems purely stem from ignorance — the install is a perfect example, I was doing it the stupid way — but I think my critisims are valid still.

It is indeed powerful, but it’s not elegant.

Add a comment

All contents © 2005—2007 Luke Matthew Sutton