/usr/lib contient des bibliothèques d'objets, des binaires de compilateurs, et des données statiques de type variés -- à la fois du code exécutable (par exemple les binaires internes du GCC sont situés dans /usr/lib/gcc-lib) et d'autres types de données.
Figure 4.7.1
De manière historique, /usr/lib a aussi contenu certaines commandes exécutables comme sendmail et makewhatis.
Puisque makewhatis n'est pas référencé par d'autres programmes, il n'y a pas de problèmes à le déplacer dans un répertoire de binaires. Puisque les utilisateurs ont de bonnes raisons d'utiliser makewhatis, /usr/bin est l'endroit où il appartient. Le binaire catman (qui remplace le script makewhatis sur beaucoup de systèmes Linux) devrait aussi être placé dans /usr/bin.
Le binaire sendmail est référencé par beaucoup de programmes par son nom historique, /usr/lib/sendmail. Ceci devrait être un lien symbolique vers l'emplacement standard pour les agents de transport de courrier possédant une interface à la ligne de commande compatible avec sendmail, /usr/sbin/sendmail.
Les systèmes qui utilisent Smail devraient placer Smail dans /usr/sbin/smail, et /usr/sbin/sendmail devrait être un lien symbolique sur Smail.
Cet arrangement se conforme aussi au nouvel emplacement standard de sendmail défini dans Sendmail 8.6.x and 4.4BSD. Notez que cet emplacement demande que /usr/sbin et /usr/sbin/sendmail soient exécutables par les utilisateurs normaux.
Tout programme ou package qui contient ou demande des données qui n'ont pas besoin d'être modifiées devraient stocker ces données dans /usr/lib (ou /usr/local/lib, en installation locale). Il est recommandé qu'un sous-répertoire soit utilisé dans /usr/lib à cet usage.
Les données de jeux stockées dans /usr/lib/games doivent être des données purement statiques. Tout fichier modifiable, comme les fichiers de scores, les logs de jeux et ainsi de suite, devraient être placés dans /var/lib. Si nécessaire pour la compatibilité avec les anciens jeux de style BSD, un lien symbolique de /usr/games/lib vers /usr/lib/games peut être utilisé.
Note : Aucune donnée spécifique à un hôte pour le système X Window ne devrait être stockée dans /usr/lib/X11 (qui est en fait /usr/X11R6/lib/X11). Les fichiers de configuration spécifiques à l'hôte comme Xconfig ou XF86Config devraient être stockés dans /etc/X11. Ceci doit inclure les données de configuration comme system.twmrc même si elles ne sont que des liens symboliques vers des fichiers de configuration plus généraux (peut-être dans /usr/etc/X11 ou /usr/X11R6/lib/X11).