Différences entre les nombreux dossiers lib sous Linux

14

Quelle est la différence entre les nombreuses bibliothèques du système Linux? (/ lib, / usr / lib, / var / lib, / usr / share / lib, etc., etc.).

Je sais que cela est géré automatiquement par synaptic chaque fois que j'installe une application, mais si je veux être développeur Linux, j'ai bien besoin de savoir où placer mes bibliothèques d'application dans le système.

Andreas Wong
la source

Réponses:

10

En règle générale, votre logiciel sera installé sous /, ou / usr, ou / usr / local. C'est ce qu'on appelle le "préfixe". / est généralement réservé aux programmes les plus critiques du système d'exploitation. / usr / est réservé à l'usage des gestionnaires de paquets. Par conséquent, lorsque vous écrivez un logiciel, il est très poli de le configurer pour que le préfixe soit / usr / local. Ensuite, cela peut être remplacé lorsque quelqu'un le conditionne pour une distribution.

Remarquez que je ne parle pas spécifiquement de "lib". Il y a plusieurs sous-répertoires communs sous le préfixe, lib n'étant que l'un d'entre eux. "bin" est utilisé pour les exécutables, "share" pour les fichiers de données, "lib" pour les bibliothèques partagées, etc. Donc, si votre programme est une bibliothèque, vous pouvez l'installer par défaut dans / usr / local / lib. S'il s'agit d'un programme normal, vous pouvez l'installer dans / usr / local / bin avec vos fichiers de données dans / usr / local / share. L'important est que vous fassiez en sorte que le préfixe soit sélectionnable au moment de la compilation. Certains peuvent préférer installer sur / usr plutôt que sur / usr / local ou vice-versa.

Matthew Talbert
la source
Votre point est donc que les emplacements sont plutôt une ligne directrice qu'une limite stricte?
Andreas Wong
1
C'est une directive, mais elle DEVRAIT être suivie, et de nombreuses applications attendent certains fichiers à certains endroits.
Jim Deville
@james point pris: D
Andreas Wong
8

Il existe également une norme qui décrit la hiérarchie des systèmes de fichiers linux / unix. Il peut être trouvé à: http://www.pathname.com/fhs/ . Ceci est destiné principalement aux développeurs de distribution, mais je ne vois aucune raison pour laquelle un utilisateur / développeur ne devrait pas être au courant.

Ahe
la source
0

/ bin et / sbin

  • binaires utilisés pour l'administration du système et également en mode utilisateur unique. Leurs fichiers de bibliothèque se trouvent dans / lib.

/ usr / bin et / usr / sbin

  • contiennent des binaires non essentiels non essentiels utilisés par tous les utilisateurs et des binaires utilisés pour les services réseau et tous. Leurs bibliothèques sont placées dans / usr / lib.

/ var / lib

  • contiennent des fichiers qui conservent des informations sur l'état des programmes en cours d'exécution ou des instances de programmes. L'utilisateur n'a pas besoin de changer cela.

/ usr / share / lib

  • Contient des fichiers de données indépendants de l'architecture.
RahulKrishnan RA
la source