エンドユーザー以外のコマンドをどこにインストールしますか?

エンドユーザー以外のコマンドをどこにインストールしますか?

私のプロジェクトの1つには、他のコマンドによってのみ呼び出され、エンドユーザーが呼び出すべきではないいくつかの特別なコマンドがあります。これらの内部コマンドをPREFIX / binにインストールする必要がありますか、それともPREFIX / libなどの他の場所にインストールする方が良いですか?

編集:問題の内部コマンドはすべてAwkスクリプトです。アーキテクチャに依存しないので、PREFIX/share/PACKAGE-NAME/binにインストールすることを検討しました。これは良い選択ですか?

ベストアンサー1

Linuxファイルシステム階層標準だから、

/ binには、システム管理者とユーザーの両方が使用できますが、他のファイルシステムがマウントされていない場合(シングルユーザーモードなど)に必要なコマンドが含まれています。また、スクリプトで間接的に使用されるコマンドを含めることもできます。

そして

/ libディレクトリには、システムを起動し、ルートファイルシステム、つまり/ binと/ sbinのバイナリを介してコマンドを実行するために必要な共有ライブラリイメージが含まれています。

そして、

システム管理ユーティリティ(およびその他のルート専用コマンド)は、/sbin、/usr/sbin、および/usr/local/sbinに保存されます。 / binのバイナリに加えて、/ sbinにはシステムの起動、回復、回復、および/または回復に必要なバイナリも含まれています。 /usrがマウントされていることが知られている(問題がない場合)、実行されるプログラムは通常/usr/sbinに配置されます。ローカルにインストールされたハイパーバイザーは/usr/local/sbinに配置する必要があります。

ついに、

/usr/libにはオブジェクトファイルとライブラリが含まれています。一部のシステムでは、ユーザーまたはシェルスクリプトが直接実行できない内部バイナリが含まれる場合があります。アプリケーションは/usr/libの下の個々のサブディレクトリを使用できます。アプリケーションがサブディレクトリを使用している場合は、そのアプリケーションに関連するすべてのアーキテクチャ依存データをサブディレクトリに配置する必要があります。

明らかに/usr/bin他の多くのオプションがあります。あなたは私を最も定義します/usr/lib

おすすめ記事