/usr/libexecは何に使用されますか?

/usr/libexecは何に使用されますか?

/usr/libexec実行可能ファイルはUnixシリーズシステムに保存されます。FHSとは次のことを意味します。(部分4.7. /usr/libexec : Binaries run by other programs (optional)":

/usr/libexecユーザーまたはシェルスクリプトによって直接実行されない内部バイナリが含まれます。アプリケーションは以下の単一のサブディレクトリを使用できます/usr/libexec

macOSでは、実行直後に呼び出されるrootless-initプログラムが 。launchd/usr/libexec

/usr/libexecまたは に保存できるスタンドアロン/usr/bin実行ファイルの場合、または に保存されるのはなぜですか/usr/sbininitシェルスクリプトによって直接呼び出されない他のプログラムも[/usr]/{bin,sbin}

答え1

これはサポート可能性の問題です。プラットフォームプロバイダは、長年の経験を通じてPATH基本的にバイナリを入れると、〜する彼らの存在に頼ることになり、〜するサポートする特定の引数とオプションによって異なります。

逆に、何かを入れると/usr/libexec/内部実装の詳細と見なされ、エンドユーザーとして直接呼び出すことが正式にサポートされていないことが明らかになります。

それにもかかわらず、これらのバイナリに直接アクセスすることを決定することができ、将来のアップグレードによって使用中のプライベートインターフェイスがクラッシュした場合、プラットフォームプロバイダからのサポートや同定は受けられません。

答え2

OS Xは従わないFHS規格。独自のファイルシステム階層(FreeBSDファイルシステム階層に似ています)があります。マニュアルページhier状態:

libexec/- システムデーモンとシステムユーティリティ(他のプログラムによって実行されます)

答え3

libexec他のプログラムで実行されるシステムデーモンおよびシステムユーティリティに適用されます。つまり、この名前空間のディレクトリに配置されたバイナリは、ユーザーが直接実行するのではなく、他のプログラムで使用するためのものです。

答え4

私の考えでは、他の人からは決して期待できないinitものがあるというアイデアよりも新しいようです。/usr/lib$PATH

関連情報