Quel est le but de / usr / libexec?

28

Les exécutables sont stockés /usr/libexecsur des systèmes de type Unix. Le FHS dit (section 4.7. /usr/libexec : Binaries run by other programs (optional)":

/usr/libexecinclut des fichiers binaires internes qui ne sont pas destinés à être exécutés directement par les utilisateurs ou des scripts shell. Les applications peuvent utiliser un seul sous-répertoire sous /usr/libexec.

Sous Mac OS X, rootless-initun programme appelé launchdimmédiatement après le démarrage est stocké dans /usr/libexec. Pourquoi serait-il stocké dans /usr/libexecun exécutable autonome qui pourrait être stocké dans /usr/binou /usr/sbin? initet d'autres programmes non appelés directement par les scripts shell sont également stockés dans des dossiers comme [/usr]/{bin,sbin}.

Melab
la source

Réponses:

14

Il est une question de supportabilité - les fournisseurs de plate - forme ont appris des années d'expérience que si vous mettez les binaires dans PATHpar défaut, les gens vont venir à dépendre d'eux d' être là, et vont venir à dépendre des arguments spécifiques et les options qu'ils prennent en charge.

En revanche, si quelque chose est inséré, /usr/libexec/cela indique clairement qu'il est considéré comme un détail d'implémentation interne, et l'appeler directement en tant qu'utilisateur final n'est pas officiellement pris en charge.

Vous pouvez toujours décider d'accéder à ces fichiers binaires directement de toute façon, vous n'obtiendrez tout simplement aucun soutien ni sympathie de la part du fournisseur de la plateforme si une future mise à niveau casse les interfaces privées que vous utilisez.

ncoghlan
la source
7

Je pense que c'est plus récent que init- l'idée est, comme il est dit, d'avoir des exécutables (donc ils ne devraient pas être dedans /usr/lib) que vous ne vous attendriez jamais à avoir chez qui que ce soit $PATH.

Aaron D. Marasco
la source
3

OS X ne respecte pas la norme FHS. Il a sa propre hiérarchie de système de fichiers (similaire à la hiérarchie de système de fichiers FreeBSD). La page de manuel hierdéclare:

libexec/ system daemons & system utilities (executed by other programs)

fd0
la source
3

libexecest destiné aux démons système et aux utilitaires système exécutés par d'autres programmes. Autrement dit, les fichiers binaires placés dans ce répertoire d'espace de noms sont destinés à la consommation d'autres programmes et ne sont pas destinés à être exécutés directement par les utilisateurs.

L'Exorciste
la source