Sensible UNIX Directory Layout
There are several directory layout standards and conventions, some
more sensible than others.
For the highest stability, factors such as being able to install multiple
versions of a package simultaneously, dependency tracking,
repeatability and so on have to be considered.
The following references describe some of these issues.
- The OFA Standard -- Oracle7 for Open Systems,
by Cary V Millsap, Oracle Corporation.
This paper is specifically about configuring Oracle systems, but the
ideas are general enough to be applied to almost all systems,
especially the concepts related to consistent mount point and
- File Hierarchy Standard.
This standard describes the /usr/local and /opt directory hierarchies,
among other things.
- Why LD_LIBRARY_PATH is bad, by David Barr.
This paper has a good description of the right and wrong uses of
LD_LIBRARY_PATH and LD_RUN_PATH.
- LD_LIBRARY_PATH is not the answer
- /usr/local Considered Harmful, by Tinaa Technologies
This page enumerates some of the weaknesses of the typical /usr/local
installation methods and describes a solution based on /opt.
- Software Design for Installability, by Steve Simmons.
- DJB Filesystem Layout, by D J Bernstein
- Soft: A Software Environment Abstraction Mechanism, by Remy Evard and Robert Leslie.
An excellent solution to the problem of managing PATH and MANPATH when
many applications are installed on a host.
- syncopt - A Flexible and Simple Approach to Package Install, by Cameron Simpson.
- Public software at cs.unm.edu, by Jon Stearley.
This page describes a system where /usr/local/bin contains symlinks to
a very organized package installation tree.
- The Encap Package Management System.
Another system which creates symlinks in /usr/local/bin.
- And another: Stow.
Hmm. Symlink generating programs seem to be a popular solution.
How do they manage name collisions and PATH priority prefrences?
See "Soft" above for a better way.
- Bruno Haible has developed a system for building
Install a package and be able to copy or move it anywhere else and it
will still work!