web-dev-qa-db-fra.com

Quel est le but de / usr / libexec?

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

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

Sous Mac OS X, rootless-init Un programme appelé par launchd immédiatement après le démarrage est stocké dans /usr/libexec. Pourquoi serait-il stocké dans /usr/libexec Alors qu'il s'agit d'un exécutable autonome qui pourrait être stocké dans /usr/bin Ou /usr/sbin? init et d'autres programmes non appelés directement par les scripts Shell sont également stockés dans des dossiers comme [/usr]/{bin,sbin}.

31
Melab

C'est une question de prise en charge - les fournisseurs de plate-forme ont appris des années d'expérience que si vous mettez des binaires dans PATH par défaut, les gens seront dépendront de leur présence, et will dépendra des arguments et des options spécifiques qu'ils prennent en charge.

En revanche, si quelque chose est mis dans /usr/libexec/ c'est une indication claire 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.

16
ncoghlan

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 dans /usr/lib) que vous ne vous attendriez jamais à avoir chez quelqu'un $PATH.

7
Aaron D. Marasco

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 hier indique-

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

4
fd0

libexec est 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.

4
TheExorcist