Option Directories -- Application

Within a typical application directory there are only subdirectories, no files. Those directories contain the "installed" files of the application, including the binaries, the man pages, any libraries or global configuration files, and so on. Those directories usually correspond roughly to the /usr/local subdirectories of the same names--bin, man, lib--but contain only the files for a single application, the application whose appname-version directory contains the subdirectories. So, in pkg/emacs-19.15/bin, for example, you would find only the binaries which were part of the Emacs package, and only those for version 19.15.

Additionally, in our normal opt/pkg/appname directories, we also have the source tree for that package. This directory is usually named as it comes from the distribution tar file; if the tar file doesn't create a subdirectory for the source, then we create one and call it src. This directory can, in fact, be located anywhere; no properly installed files will contain any dependencies on files down the source tree. And an installed application may have its source directory tree deleted to save space without affecting the proper functioning of the application. However, it is our convention to leave the source tree in place, for reference purposes.

Most applications will have a bin directory. A notable exception would be certain library packages such as the Portable Network Graphics library, libpng. Nearly all will have a man directory tree, containing the appropriate man1, man2, man3, etc., subdirectories. Many packages will have a lib directory, which usually contains any libraries specific to the app, and also often contains global configuration files. Our convention for X windows application default files is to create a directory named opt/appname/lib/X11/app-defaults to contain the application default resource files.

Some packages will have other, less commonly used directories as part of their installation. GNU packages, for example, often use an info directory for their documentation. Some packages put configuration files into an etc directory. Others use a sharedirectory for global data. Whatver subdirectories are needed by the package should be located within its appname-version directory.

[typical app dir]


Last modified: Wed 5 Nov 1997