/ usr / libexecの目的は何ですか?


28

実行可能ファイルは/usr/libexec、Unixライクなシステムに保存されます。FHSは言う(セクション4.7. /usr/libexec : Binaries run by other programs (optional)"

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

Mac OS Xではrootless-initlaunchd起動直後に呼び出されるプログラムはに保存され/usr/libexecます。または/usr/libexecに格納できるスタンドアロンの実行可能ファイルであるのに、なぜ格納されるのですか?また、シェルスクリプトによって直接呼び出されない他のプログラムも、などのフォルダーに保存されます。/usr/bin/usr/sbininit[/usr]/{bin,sbin}

回答:


14

これは、サポート性の問題だ-プラットフォームプロバイダは、あなたがバイナリを置けばという長年の経験から学んだPATHデフォルトでは、人々はなります彼らはそこにいるに依存してくる、となり、それらがサポートする特定の引数とオプションに依存してきます。

対照的に、何かを入れると、/usr/libexec/それが内部実装の詳細と見なされていることを明確に示しており、エンドユーザーとして直接呼び出すことは公式にはサポートされていません。

とにかく、これらのバイナリに直接アクセスすることもできます。将来のアップグレードで使用しているプラ​​イベートインターフェイスが破損した場合、プラットフォームプロバイダーからサポートや共感を得ることはできません。


7

私はそれがより新しいと思いますinit-アイデアは、それが言ったように/usr/lib、あなたが誰にも持っていることを決して期待しない実行可能ファイルを持っていることです(したがって、それらは含まれません)$PATH


3

OS XはFHS標準に準拠していません。独自のファイルシステム階層があります(FreeBSDファイルシステム階層に似ています)。マニュアルページのhier状態

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


3

libexec他のプログラムによって実行されるシステムデーモンとシステムユーティリティ用です。つまり、この名前空間のディレクトリに置かれたバイナリは、他のプログラムの消費を目的としており、ユーザーが直接実行することを意図したものではありません。

弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.