Qual é o propósito de /usr/libexec?

Qual é o propósito de /usr/libexec?

Os executáveis ​​são armazenados em /usr/libexecsistemas do tipo Unix.A ESF diz(seção 4.7. /usr/libexec : Binaries run by other programs (optional)":

/usr/libexecinclui binários internos que não se destinam a serem executados diretamente por usuários ou scripts de shell. Os aplicativos podem usar um único subdiretório em /usr/libexec.

No macOS, rootless-initum programa chamado launchdimediatamente após a inicialização é armazenado no formato /usr/libexec.

Por que ele seria armazenado /usr/libexecquando é um executável independente que pode ser armazenado em /usr/binou /usr/sbin? inite outros programas não chamados diretamente por scripts de shell também são armazenados em pastas como [/usr]/{bin,sbin}.

Responder1

É uma questão de suporte - os provedores de plataformas aprenderam com anos de experiência que se você colocar binários PATHpor padrão, as pessoasvaipassou a depender de eles estarem lá, evaipassam a depender dos argumentos e opções específicos que apoiam.

Por outro lado, se algo for inserido, /usr/libexec/é uma indicação clara de que é considerado um detalhe de implementação interna, e chamá-lo diretamente como usuário final não é oficialmente suportado.

Você ainda pode decidir acessar esses binários diretamente de qualquer maneira, mas não receberá nenhum suporte ou simpatia do provedor da plataforma se uma atualização futura quebrar as interfaces privadas que você está usando.

Responder2

OS X não segue oPadrão ESF. Ele possui sua própria hierarquia de sistema de arquivos (semelhante à hierarquia de sistema de arquivos do FreeBSD). A página de manualhierafirma:

libexec/- daemons de sistema e utilitários de sistema (executados por outros programas)

Responder3

libexecdestina-se a daemons de sistema e utilitários de sistema executados por outros programas. Ou seja, os binários colocados neste diretório com namespace são destinados ao consumo de outros programas e não devem ser executados diretamente pelos usuários.

Responder4

Eu acho que é mais recente do que init- a ideia é, como foi dito, ter executáveis ​​​​(para que não deveriam estar no /usr/lib) que você nunca esperaria ter no $PATH.

informação relacionada