Wandering Thoughts archives

2008-02-08

Why /usr/local is now useless (and where it came from)

Right from the early days of vendor provided Unix, two things were relatively obvious to people: first, you were going to need to add a bunch of local programs to make the system really useful to your users, and second, adding local programs to vendor areas like /bin or /usr/bin was a pretty sure road to doom and disaster. So people started putting them somewhere else.

(The most famous example is that BSD Unix put a bunch of their additions in /usr/ucb, which then turned into a vendor area of its own that you shouldn't add commands to yourself.)

Eventually, a rough consensus emerged that /usr/local was the default place for 'locally added programs'. Not everyone used it, but enough did that things like configuration systems started defaulting to putting things there if you didn't tell them otherwise.

The downfall of /usr/local was some vendors getting excessively clever (or just excessively lazy) and shipping programs that installed into /usr/local. Since vendors might now randomly dump things into /usr/local, it was no longer safe to use for your own local programs; it had effectively become a vendor area, and people abandoned it. At the same time most vendors avoided it, because it was after all supposed to be a local area.

The result has been to turn /usr/local into a no man's land, where it's not safe for anyone to install anything.

(There were two sorts of bad vendors here. The operating system vendors decided that clearly they should ship their packaged versions of free software to install into /usr/local (after all, that was the default); the third party software vendors decided that since everyone seemed to put software in /usr/local, they should ship their packages to install there too (after all, they weren't the OS vendor). Both badly misunderstood the real need and use for /usr/local.)

unix/UsrLocalOrigin written at 00:47:57;


Page tools: See As Normal.
Search:
Login: Password:

This dinky wiki is brought to you by the Insane Hackers Guild, Python sub-branch.