¿Cuál es el propósito de /usr/libexec?

¿Cuál es el propósito de /usr/libexec?

Los ejecutables se almacenan en /usr/libexecsistemas tipo Unix.La FHS dice(sección 4.7. /usr/libexec : Binaries run by other programs (optional)":

/usr/libexecincluye archivos binarios internos que no están destinados a ser ejecutados directamente por usuarios o scripts de shell. Las aplicaciones pueden utilizar un único subdirectorio en /usr/libexec.

En macOS, rootless-initun programa al que se llama launchdinmediatamente después del arranque se almacena en /usr/libexec.

¿Por qué se almacenaría en /usr/libexeccuando es un ejecutable independiente que podría almacenarse en /usr/bino /usr/sbin? inity otros programas no llamados directamente por scripts de shell también se almacenan en carpetas como [/usr]/{bin,sbin}.

Respuesta1

Es una cuestión de compatibilidad: los proveedores de plataformas han aprendido gracias a años de experiencia que si colocas archivos binarios PATHde forma predeterminada, la gentevoluntadllegado a depender de que ellos estén allí, yvoluntadllegan a depender de los argumentos y opciones específicos que apoyan.

Por el contrario, si se incluye algo, /usr/libexec/es una indicación clara de que se considera un detalle de implementación interna y no se admite oficialmente llamarlo directamente como usuario final.

Aún así puedes decidir acceder a esos archivos binarios directamente, pero no recibirás ningún soporte o simpatía del proveedor de la plataforma si una actualización futura rompe las interfaces privadas que estás utilizando.

Respuesta2

OS X no sigue elestándar FHS. Tiene su propia jerarquía de sistema de archivos (similar a la jerarquía del sistema de archivos FreeBSD). La página de manualhierestados:

libexec/- demonios del sistema y utilidades del sistema (ejecutadas por otros programas)

Respuesta3

libexecestá destinado a demonios del sistema y utilidades del sistema ejecutadas por otros programas. Es decir, los archivos binarios colocados en este directorio con espacio de nombres están destinados al consumo de otros programas y no para que los usuarios los ejecuten directamente.

Respuesta4

Creo que es más nuevo init: la idea es, como decía, tener ejecutables (por lo que no deberían estar en /usr/lib) que nunca esperarías tener en el archivo $PATH.

información relacionada