For the record, I don't like MacPorts. I don't like building software from sources when someone could have done it for me just fine. It's a waste of fossil fuels and a waste of my time. Since my Mac doesn't come with most of the software I'd expect I have to build things from sources. I tried doing this for a long time without MacPorts, but since everyone on the Mac installs all their software through MacPorts none of the portability patches make it upstream.
So I gave into the MacPorts software monopoly. There is, however no chance in hell I'm going to let it run as root and write whatever all over my filesystem - especially while the Mac doesn't have a decent package management system I can use to restore system files that have been overwritten. MacPorts does, in theory let you install anywhere as any user. Just download the MacPorts tarball and configure with a few options:
./configure --prefix=$HOME/macports --with-install-user=ian
--with-install-group=staff
make install
Just add $HOME/macports/bin
to your path and you're off.
There do unfortunately seem to be a few limitations. Some packages like
openssh want to install things as root. It looks like the MacPorts
packaging is too coarse - you can't install the client binaries without
installing the server binaries. I guess I need to look into porting
fakeroot
.