/usr/libexec 的用途是什么?

/usr/libexec 的用途是什么?

可执行文件存储在/usr/libexec类 Unix 系统上。FHS 表示(部分4.7. /usr/libexec : Binaries run by other programs (optional)"

/usr/libexec包括不打算由用户或 shell 脚本直接执行的内部二进制文件。应用程序可以使用 下的单个子目录/usr/libexec

在 macOS 上,启动后立即rootless-init调用的程序launchd存储在/usr/libexec.

/usr/libexec当它是可以存储在/usr/binor中的独立可执行文件时,为什么要存储在 中/usr/sbininit其他不由 shell 脚本直接调用的程序也存储在[/usr]/{bin,sbin}.

答案1

这是一个可支持性的问题 - 平台提供商从多年的经验中了解到,如果您PATH默认放入二进制文件,人们将要开始依赖他们的存在,并且将要取决于他们支持的具体论点和选项。

相比之下,如果放入某些内容,/usr/libexec/则明确表明它被视为内部实现细节,并且不正式支持作为最终用户直接调用它。

无论如何,您可能仍然决定直接访问这些二进制文件,如果未来的升级破坏了您正在使用的私有接口,您将不会获得平台提供商的任何支持或同情。

答案2

OS X 不遵循FHS标准。它有自己的文件系统层次结构(类似于 FreeBSD 文件系统层次结构)。手册页hier状态:

libexec/- 系统守护进程和系统实用程序(由其他程序执行)

答案3

libexec适用于由其他程序执行的系统守护进程和系统实用程序。也就是说,放入此命名空间目录中的二进制文件旨在供其他程序使用,而不是由用户直接执行。

答案4

我认为它比init- 这个想法更新,就像它所说的那样,拥有/usr/lib你永远不会期望在任何人的$PATH.

相关内容