/usr/binとLinuxの/usr/local/bin

/usr/binとLinuxの/usr/local/bin

Linuxにバイナリを置くことができる場所がなぜそんなにたくさんあるのですか?少なくとも次の5つがあります。

  1. /bin/
  2. /sbin/
  3. /usr/bin/
  4. /usr/local/bin/
  5. /usr/local/sbin/

私のオフィスボックスには、いくつかのアイテムへの書き込みアクセス権がありません。

次のいずれのバイナリタイプに属していますかbin

答え1

  1. /bin(および)は、大きくて同じパーティションをインストールする前に小さなパーティションに配置する必要があるプログラム/sbinに適しています。もともとの意図は依然としてコンパクトな組み込みデバイスにインストールすることに関連しているかもしれませんが、今日ではWindowsなどの重要なプログラムの標準的な場所として主に使用されています。//usr/bin/sh

  2. /sbin/binとは異なり、マウント前に必要なシステム管理プログラムです(通常、一般ユーザーは使用しません)。/usr

  3. /usr/bin流通管理に適した共通ユーザープログラムです。

  4. /usr/sbintoと同じ関係を持つtoが存在します。/usr/bin/sbin/bin

  5. /usr/local/bin一般ユーザープログラムに最適いいえローカルにコンパイルされたパッケージなど、配布パッケージマネージャによって管理されます。/usr/bin将来の展開のアップグレード中に警告なしに修正または削除される可能性があるため、インストールしないでください。

  6. /usr/local/sbin今ごろ推測されたでしょうが、それは〜/usr/local/binです。/usr/sbin/usr/bin

/optまた、さまざまなディストリビューションで正しく統合される前にGnomeとKDEを配置しましたが、非ディストリビューションパッケージ全体のパッケージもあります。一般的に言えば、Oracleのように規模が大きくパフォーマンスの低いサードパーティ製パッケージ用にこの機能を予約する必要があります。

答え2

ファイルシステム層のマニュアルページを確認することをお勧めします。

man hier

オンラインでも利用可能です。例:http://linux.die.net/man/7/hier。関連部分は以下に再現されています。システムによって異なるように表示される場合があります。

名前

    hier - ファイルシステム階層の説明

説明する

    一般的なLinuxシステムには、次のディレクトリがあります。

    /bin
      このディレクトリには、シングルユーザーモードでシステムを起動または修復するために必要なランチャーが含まれています。
       
    /sbin
      同様に、/binこのディレクトリにはシステムを起動するために必要なコマンドが含まれていますが、通常は通常のユーザーは実行しません。
       
    /usr/bin
      実行可能プログラムのホームディレクトリです。通常のユーザーが実行してシステムを起動または修復する必要はなく、ローカルにインストールされていないほとんどのプログラムはこのディレクトリに配置する必要があります。
       
    /usr/local/bin
      サイトローカルプログラム用のバイナリ。
       
    /usr/local/sbin
      システム管理用のローカルインストーラです。
       
    /usr/sbin
      /usrこのディレクトリには、ブートプロセス、インストール、またはシステムの回復には必要ありませんが、システム管理に使用されるプログラムバイナリが含まれています。

答え3

これファイルシステム階層標準Wikipediaのエントリは私が同じ質問に答えるのを助け、非常に説明的な表を持っています。

1ページからの抜粋:

/bin        Essential command binaries that need to be available in single user mode; for all users, e.g., cat, ls, cp.
/usr/bin    Non-essential command binaries (not needed in single user mode); for all users.
/usr/local  Tertiary hierarchy for local data, specific to this host. Typically has further subdirectories, e.g., bin, lib, share
/usr/sbin   Non-essential system binaries, e.g., daemons for various network-services.
/sbin       Essential system binaries, e.g., fsck, init, route.

1 2019年6月19日に検索しました。固有リンク

答え4

1970年代、UNIXには、すべての公式の実行可能ファイルとユーザーのホームディレクトリ(たとえば)の下に他の人が興味を持っ/binている可能性がある独自のバイナリを保存するために使用できる場所がありました。/usr/bin/usr/dmr

これらの開示の結果/usr/binは文書化されていないソフトウェアのアリーナになったため、Stephen Bourneは毎晩新しいバイナリをチェックし、文書がないか更新されたが文書を更新しなかったバイナリを削除するcronスクリプトを作成しました。

1970年代後半に/usr/binオペレーティングシステムベースのディストリビューションに統合され、人々は/usr/local/bin以前に公開された目的で使用を開始しました/usr/bin

しばらくすると、システム管理者は/usr/local/binネットワークからインポートされた非基本ソフトウェア(USENETなど)を保存することに慣れ、UNIX会社は同じミスを繰り返すのが好きではなかったため、/usr/bin1987年頃にファイルシステム階層会議が開かれました。 UNIX Corporationはこれを放棄し/usr/local/bin、代わりに使用することに同意しました/opt/<vendor>/bin

残念ながら、Linuxディストリビューションはこの決定に従わなかった...

関連情報