/usr/lib
includes object files and libraries.
[21]
On some systems, it may also include internal binaries that are not
intended to be executed directly by users or shell scripts.
[22]
Applications may use a single subdirectory under
/usr/lib
. If an application uses a subdirectory,
all architecture-dependent data exclusively used by the application
must be placed within that subdirectory.
[23]
For historical reasons, /usr/lib/sendmail must be a symbolic link which resolves to the sendmail-compatible command provided by the system's mail transfer agent, if the latter exists. [24] [25]
[21] Miscellaneous
architecture-independent application-specific static files and
subdirectories must be placed in /usr/share
.
[22] See below, in the /usr/libexec
section, for a discussion of /usr/lib
vs. /usr/libexec
for executable binaries.
[23] For example, the perl5
subdirectory for
Perl 5 modules and libraries.
[24]
Some executable commands such as makewhatis and
sendmail have also been traditionally placed in
/usr/lib
. makewhatis is an
internal binary and must be placed in a binary directory; users access
only catman. Newer sendmail
binaries are now placed by default in /usr/sbin
.
Additionally, systems using a sendmail-compatible
mail transfer agent must provide /usr/sbin/sendmail
as the sendmail command, either as the executable
itself or as a symlink to the appropriate executable.
[25]
Host-specific data for the X Window System must not be stored in
/usr/lib/X11
. Host-specific configuration files
such as xorg.conf
must be stored in
/etc/X11
. This includes configuration data such
as system.twmrc
even if it is only made a
symbolic link to a more global configuration file (probably in
/usr/lib/X11
).