2003-09-13 14:37:30 +00:00
<sect1 id= "lib" >
2003-09-05 10:47:54 +00:00
<title > /lib</title>
<para >
2004-01-20 03:20:53 +00:00
The /lib directory contains kernel modules and those shared library images (the C programming code library) needed to boot the system and run the commands in the root filesystem, ie. by binaries in /bin and /sbin. Libraries are readily identifiable through their filename extension of *.so. Windows equivalent to a shared library would be a DLL (dynamically linked library) file. They are essential for basic system functionality. Kernel modules (drivers) are in the subdirectory /lib/modules/'kernel-version'. To ensure proper module compilation you should ensure that /lib/modules/'kernel-version'/kernel/build points to /usr/src/'kernel-version' or ensure that the Makefile knows where the kernel source itself are located.
2003-09-05 10:47:54 +00:00
</para>
<para >
<variablelist >
<varlistentry >
<term > /lib/' machine-architecture' </term>
<listitem >
<para > Contains platform/architecture dependent libraries.</para>
</listitem>
</varlistentry>
<varlistentry >
<term > /lib/iptables</term>
<listitem >
<para > iptables shared library files.</para>
</listitem>
</varlistentry>
<varlistentry >
<term > /lib/kbd</term>
<listitem >
<para > Contains various keymaps.</para>
</listitem>
</varlistentry>
<varlistentry >
<term > /lib/modules/' kernel-version' </term>
<listitem >
<para > The home of all the kernel modules. The organisation of
files here is reasonably clear so no requires no elaboration.
</para>
</listitem>
</varlistentry>
<varlistentry >
<term > /lib/modules/' kernel-version' /isapnpmap.dep</term>
<listitem >
<para >
has details on ISA based cards, the modules that they
require and various other attributes.
</para>
</listitem>
</varlistentry>
<varlistentry >
<term > /lib/modules/' kernel-version' /modules.dep</term>
<listitem >
<para >
lists all modules dependencies. This file can
be updated using the depmod command.
</para>
</listitem>
</varlistentry>
<varlistentry >
2003-12-19 20:44:54 +00:00
<term > /lib/modules/' kernel-version' /pcimap</term>
2003-09-05 10:47:54 +00:00
<listitem >
<para > is the PCI equivalent of the
/lib/modules/'kernel-version'/isapnpmap.dep file.
</para>
</listitem>
</varlistentry>
<varlistentry >
<term > /lib/modules/' kernel-version' /usbmap</term>
<listitem >
<para > is the USB equivalent of the
/lib/modules/'kernel-version'/isapnpmap.dep file.</para>
</listitem>
</varlistentry>
<varlistentry >
<term > /lib/oss</term>
<listitem >
<para >
All OSS (Open Sound System) files are installed
here by default.
</para>
</listitem>
</varlistentry>
<varlistentry >
<term > /lib/security</term>
<listitem >
<para > PAM library files.</para>
</listitem>
</varlistentry>
</variablelist>
</para>
<para >
<screen >
2004-02-04 00:59:32 +00:00
The FSSTND states that the /lib directory contains those shared library
images needed to boot the system and run the commands in the root filesystem,
ie. by binaries in /bin and /sbin.
Shared libraries that are only necessary for binaries in /usr (such as any
X Window binaries) must not be in /lib. Only the shared libraries required
to run binaries in /bin and /sbin may be here. In particular, the library
libm.so.* may also be placed in /usr/lib if it is not required by anything
in /bin or /sbin.
At least one of each of the following filename patterns are required (they
may be files, or symbolic links):
libc.so.* The dynamically-linked C library (optional)
ld* The execution time linker/loader (optional)
If a C preprocessor is installed, /lib/cpp must be a reference to it, for
historical reasons. The usual placement of this binary is /usr/bin/cpp.
The following directories, or symbolic links to directories, must be in
2003-09-05 10:47:54 +00:00
/lib, if the corresponding subsystem is installed:
2004-02-04 00:59:32 +00:00
modules Loadable kernel modules (optional)
/lib< qual> : Alternate format essential shared libraries (optional)
There may be one or more variants of the /lib directory on systems which
support more than one binary format requiring separate libraries.
This is commonly used for 64-bit or 32-bit support on systems which support
multiple binary formats, but require libraries of the same name. In this
case, /lib32 and /lib64 might be the library directories, and /lib a symlink
to one of them.
If one or more of these directories exist, the requirements for their contents
are the same as the normal /lib directory, except that /lib< qual> /cpp is
not required.
/lib< qual> /cpp is still permitted: this allows the case where /lib and
/lib< qual> are the same (one is a symbolic link to the other).
2003-09-05 10:47:54 +00:00
</screen>
</para>
2003-09-13 14:37:30 +00:00
</sect1>