Where should non-macports sw be installed? (Was: Problem with Macports, homebrew, and ghostscript

Gregory Shenaut gkshenaut at ucdavis.edu
Fri Feb 14 09:56:19 PST 2014

On Feb 14, 2014, at 08:46 , Mark Anderson <emer at emer.net> wrote:

> I also install into /opt/<something> where <something> expands to something descriptive of all the crap I am installing in there. Then I can turn PATHs on and off depending. This is really important for playing with things like the gtk+ cocoa that needs its whole space to itself. Just DONT use /opt or /opt/local of course. I also set them to be owned by my user, so I don't have to sudo to install. If I do, I know something is up.

I've been reluctant to use anything under /opt because in the event I ever need to scrub macports and start over, it's easier to remove /opt and reinstall macports from scratch.

I'm currently installing all my own programs & scripts in my home directory, with traditionally named folders like bin, doc, include, lib, libexec, man, share, src, var, and tmp. There are a few downloaded apps there too, but there are also a few where it seemed like too much work to keep them from going right into /usr/local where they belong.

For a while, I had a separate sub-hierarchy in my home directory, with a symlink in / pointing to it; that way, I could refer to things I installed as /whatever/... and so on, as an alternative to ~/whatever/... But I decided that since I'm the only one that uses my Mac, I was just being compulsively traditional in making those things accessible from the root.

It's a pity that macports isn't an official part of the system, like the freebsd ports are in fbsd, because if it were, then they (and not other ports) could simply install things right into the main system hierarchy. I believe that historically, really core elements of the OS went into /bin /lib and so on (this was back in the days when the root volume couldn't be very large), where “extra” things of interest to users things went into /usr/bin /usr/lib and so on (sometimes these were each on different physical drives). Locally-written things went into /usr/local, also often on a separate drive. When Berkeley started distributing their collections of software, they used /usr/ucb to keep it separate. For most unixy systems, that's really all you need, because an official ports system can then install things wherever they like without messing themselves up. But on the Mac, since there never has been an official ports system, there is competition between standard utilities wanting to be installed in /usr/local and several different ports systems. As a result we have /opt /sw and so on (I have no idea why the original pattern of /usr/ucb wasn't followed with /usr/mp, /usr/fink, and so on, but it wasn't), as well as a host of troubles when the assumptions of the various ports systems are violated. I suppose that's just another word for freedom.

What I'm seeing from these responses is basically what I had always assumed, namely that macports doesn't really care where you install other software, as long as it isn't in /opt (or perhaps only /opt/local).

Greg Shenaut

More information about the macports-users mailing list