読者です 読者をやめる 読者になる 読者になる

/bin/, /usr/bin/, /usr/local/bin/, の違いのまとめ

はじめに。

/bin/, /usr/bin/, /usr/local/bin/
たまにうっかりしていると、このディレクトリ達の用途の違いがわからなくなることありませんか?
そんな物忘れさんな人(主に自分)用に、その違いを簡潔にまとめておきましょう。

ちなみに、こういうのはFHSといいます。詳しくは以下参照。
Filesystem Hierarchy Standard - Wikipedia

それから、この内容は、自分用に大雑把にまとめただけなので、正確さに欠けるかもしれません。
詳しく知りたい人は↓を見たほうがいいです。
エンタープライズ: - 第14回:FHSによるディレクトリの規格化

この記事は、楽して大意を掴みたい人向けということで。
その点は含みおき下さい。


まとめてみました。

まとめたい対象のディレクトリは、以下の6つ

$ file /bin /sbin /usr/bin/ /usr/sbin/ /usr/local/bin/ /usr/local/sbin/ 
/bin:             directory
/sbin:            directory
/usr/bin/:        directory
/usr/sbin/:       directory
/usr/local/bin/:  directory
/usr/local/sbin/: directory

注: どのディレクトリも、実行ファイル(lsとかcpとかね)を格納しておくためのディレクトリです。

その分類の要点は以下の3つ。

  • /bin or /sbin

    • 一般ユーザ向けのコマンドが置いてあるのが、 /bin
    • システム管理者向けのコマンドが置いてあるのが、 /sbin

    これは、"/usr/bin or /usr/sbin" でも、"/usr/local/bin/ or /usr/local/sbin/" でも同じ。

  • OS起動やシステムメンテナンスに必須なもの or not

    • OS起動やシステムメンテナンスに必須なもの: /bin, /sbin
    • そうでないもの: /usr/bin/, /usr/sbin/, /usr/local/bin/, /usr/local/sbin/
  • /usr/ or /usr/local/

    • 付加的なアプリケーションをインストールしたいときは /usr/local/bin/, /usr/local/sbin/ に配置する。
    • それ以外は、/usr/bin/, /usr/sbin/"

    注:
    自分で書いておいて言うのも何ですが、ここの記述はかなりいい加減ですね。
    (たぶん私も正確に違いを把握出来ていない。)

    誤解を恐れずに、自分の感覚で言うと、

    • 自分で、apt-get とか yum でインストールしたものは、/usr/bin, /usr/sbin に置いてあるような気がする。
      (すべてがそうではない。)
    • /usr/local/bin/, /usr/local/sbin/ は /opt と同じような使い方をする気がする。
    • ソースコードだけが公開されていて、インストーラすら無いような、小さなユーティリティアプリケーションを格納したいときは、/usr/local/bin/, /usr/local/sbin/ のどっちかに配置すればよさそう。

以上、すごく大雑把なまとめでした。 (間違っていたらごめんなさい。)