新しいアプリケーションをインストールすると、生成されたバイナリを配置できるディレクトリが複数あることがわかりました。
パッケージングマネージャを使用してインストールし、Pythonmake
などをeasy_install
使用してコンパイルできます。
私の$PATH
外観は次のとおりです。
/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin:/usr/games
生成されたバイナリ(またはライブラリ)をどのディレクトリに配置する必要があるかを決定するいくつかの規則または規則はありますか?
ソースコードをコンパイルするときの結果は通常/usr/local/bin/
。
バイナリに関してUnix哲学(デザインとルールの決定)を説明する答えを書くことはできますか?これが起こる理由は何ですか(すべてのバイナリに1つのディレクトリを使用しないのはなぜですか?)
答え1
答え2
また@サルダトリオン答えは、sbin
ディレクトリが通常、さまざまなシステム管理ツール、低レベルのシステムアプリケーション、およびさまざまなシステムデーモンのバイナリファイルを保存するために使用されることです。
たとえば、sでは(カーネルが内部初期化を完了した後の起動プロセスの制御)、(ハードディスクの動作パラメータの読み取りと設定)、(デーモンの印刷)、(ハードディスクからのSMARTデータの読み込み)などがありsbin
ます。に。/sbin/init
/sbin/hdparm
/usr/sbin/cupsd
/usr/sbin/smartctl
一般ルールも/usr
パッケージ管理者によって管理され、/usr/local
ユーザーまたはシステム管理者によって管理されます(両方が異なる場合)。これについての歴史的先例があります。ディスク容量が高いと、/ usrはネットワーク経由で読み取り専用でマウントでき、システムが直接ネットワーク起動をサポートしていなくても、多くのワークステーションで共有できます。これにより、各ワークステーションは、比較的小さい独自の/usr/localと(比較的軽い)ルートファイルシステム(/
)を持つことができます。 /usrと/usr/localの違いは、ソースからビルドするときにほとんどのパッケージがデフォルトで/usr/localにインストールされる理由である可能性があります。
答え3
これファイルシステム階層標準指定するLinuxディストリビューションがファイルを配置する場所。
bin
ディレクトリにはすべてのユーザーが使用できる実行可能ファイルが含まれ、ディレクトリにはsbin
システム管理者のみが使用できる実行可能ファイルが含まれています。sbin
ディレクトリは通常ルートの$PATH
。
/bin
(および/sbin
)は別々のパーティションにインストールできるため、起動プロセスの初期に必要なプログラムが含まれています/usr
(最近はまれですが)。
/usr/bin
(および/usr/sbin
)には、ディストリビューションに付属しているが/bin
含まれていないプログラムが含まれています/sbin
。一般的なシステムでは、ほとんどの実行可能ファイルは/usr/bin
。
階層/usr/local
は管理者のドメインです。ディレクトリは/lib
通常/bin
配布用に予約されており、通常はシステムパッケージマネージャが提供するファイルのみが含まれています/sbin
。 (特におよび)はパッケージマネージャの影響を受けないため、ローカル管理者は手動でインストールされた実行可能ファイルをここに配置できます。/usr
/usr/local
/usr/local/bin
/usr/local/sbin
/usr/games
ディストリビューションで提供され、純粋に娯楽目的と見なされる実行可能ファイルを含めることができます。これは概して歴史の遺物です(長い間、一日の特定の時間/usr/games
にアクセスが禁止されている可能性がありますが、とにかく簡単に修正できるこれらの慣行は消えました)。
Linuxシステムの他の一般的な実行可能な場所は次のとおりです。
/usr/X11R6/bin
または/usr/bin/X11
Xプログラムの場合。 Xプログラムと非Xプログラムを分離する慣行は徐々に消えています。今彼らは皆に住んでいます/usr/bin
。/usr/bin/mh
実行ファイルの場合MH Eメールクライアント、MHユーザーのみが使用する単一目的のシェルコマンド(show
メッセージ表示、forw
電子メール転送...)を使用して電子メールを操作します。/usr/bin/mh
$PATH
/opt/bin
存在する場合は、インストールされているアプリケーションへのシンボリックリンクが含まれます/opt
。
Linuxの規則は、ほとんどのUNIXシステムが従う一般的なガイドラインに触発されましたが、各UNIXのバリエーションには独自の特徴があります。たとえば、
- * BSDにはデプロイの中心
/
のみが含まれています。つまり、デプロイメント・マネージャーが直接保守する基本サービスとアプリケーションです。/usr
第三者プログラム(「パッケージ」または「ポート」)は、/usr/local
パッケージマネージャによって管理されていてもインストールされます。システム管理者が提供するプログラムに対して普遍的に許可されている別の場所はありません。 - 一部のUNIXシステムにはディレクトリがなく、これは
/bin
シンボリックリンクです。/sbin
/usr/bin
- 一部のシステムでは、オプションのパッケージを含む追加のディレクトリがそれぞれ独自の
bin
ディレクトリにある場合があります$PATH
。 $PATH
一部のシステムには、実行環境の互換性が必要なターゲット(たとえば/usr/bin/posix
、POSIX / Single Unixとの互換性、または従来の/usr/xpg4/bin
BSDシステムとの互換性)に応じて配置することも、配置しない可能性がある追加のディレクトリもあります。/usr/xpg6/bin
/usr/ucb