Linuxのアプリケーションの従来のインストール場所は何ですか?


73

現在NetBeansをインストールしていますが、デフォルトのインストールディレクトリは/home/thomasowens/netbeans-6.8です。私はその場所のファンではないので、私は見てよ/etc/bin/usr/bin、と/sbin。Linuxには、慣例により、WindowsのC:\Program Filesディレクトリと同じ場所がありますか?

回答:


99

よるファイルシステム階層標準、許容される用途に応じていくつかの場所があります。ここから広範囲に引用しています。

  • bin もちろん「バイナリ」の略です
  • sbin "server binary"の略で、それ以外は次のように定義されます:

    システム管理に使用されるユーティリティ(およびその他のルート専用コマンド)

  • /usr 共有可能な読み取り専用データ用であり、さまざまなFHS準拠ホスト間で共有可能である必要があります(ネットワーク上に多数のマシンがあり、それらがすべて同じアーキテクチャである場合、単一の/ usrフォルダーを共有できるはずですネットワーク上のすべてのマシンで)

  • /usr/local ソフトウェアをローカルにインストールするときにシステム管理者が使用します(つまり、ネットワーク上のすべてのマシンではなく、このマシンのみにインストールされるアプリケーション用)。

これらをまとめると:

  • /usr/bin システム上の実行可能コマンドのプライマリディレクトリです。
  • /usr/sbin システム管理者が排他的に使用する非必須バイナリ用です。
  • システムの修復、システム回復、マウントは/ usr、または他の重要な機能のために必要とされるシステム管理プログラムが中に配置しなければならない/sbin代わりに(つまり、あなたが実装するためにアクセスするために必要なもの/usr/sbinで行きます/sbin
  • 同様に、/usrマウントされる前に必要になる可能性のある重要なユーザーコマンドが/bin
  • ローカルマシンにのみインストールされているものはすべて、/usr/local/binまたは/usr/local/sbin

ただし、/ usr / localにはもう1つの用途があります。ディストリビューションのパッケージマネージャーを使用してインストールするほとんどのものは、/ usrの下に配置されます。多くの人は、代わりに/ usr / localの下に手でコンパイルしたものを置きます。これにより、パッケージ管理システムの邪魔にならないようにし、ディストリビューションからインストールしたもの(また、再度取得できるのでバックアップする必要がない)と手動でコンパイルしたものを見つけることができます。また、異なるバージョンを同時に実行することもできます(たとえば、/ usr / bin / firefox vs / usr / local / bin / firefox)。


物事が解決したと思ったとき、もう1つの場所があります。これはおそらくc:\Program Files-に最も近いものです/opt

/opt アドオンアプリケーションソフトウェアパッケージのインストール用に予約されています。

/optおそらくに最も近いと等価であるc:\program files、それはあなたが1つのフォルダにまとめて、そのすべてのファイルを使用してアプリケーションを見つけるのではなく、全体の散乱を期待したい1位だという点で、/usr/bin/var、と/etc。通常、非常に大きなパッケージでのみ使用されますが、この場合、Netbeansが独自のフォルダーを必要としていることを考えると、おそらく/ opt / netbeansの下に置くのが最も理にかなっています


3
面白い。Linuxを設計した場合、ネットワーク共有アプリを/ usr / sharedに配置し、プライベートローカルホストアプリを/ usrに配置します。そうすれば、継承によって/ usrを共有せずに/ usr / sharedを共有できます。
djangofan

1
本当にいい答えです。また、パッケージ管理システムの邪魔にならないようにすることについてのコメントも気に入っています。
-DaveParillo

1
「完全なサードパーティのパッケージ」に対して/ optを確実に。ほとんどのインストールでは、さまざまなバイナリ、ライブラリ、ファイルなどが異なるディレクトリに分割されますが、「all in one」ディレクトリがある場合、/ optを使用すると簡単に対処できます。
エイブリーペイン14

カップルの簡単な質問:1)/ usrがネットワーク上のすべてのマシン間で共有可能であると想定される場合、それはすべての子ディレクトリも共有可能であることを意味しません。2)FHSとは3)/ usrのマウントに必要なコマンドについて話すとき、OSがシャットダウンなどから起動する方法について話しているのですか?7年後の質問への衝撃をおaびしますが、Linuxの初心者であり、インストールガイドが物を置く場所を言うのを見て、同じ質問をしました。+1 btw
Ungeheuer

5

本当にそれは個人的な好みに帰着します。私はそれが価値があるものについて説明します。

/ usr、/ usr / binは通常、システムによってインストールされるソフトウェアのインストール先です。自分で物をインストールするとき、いくつかの場所のいずれかにインストールします。

  1. 私だけが使用するスクリプトまたは小さなプログラムである場合は、〜/ binにインストールします。これが、ほとんどのものが置かれる場所です。
  2. 独自の完全なファイルツリーで説明したようなもの(NetBeans)の場合は、/ optにインストールします。
  3. 単一の実行可能ファイルの場合、/ usr / local / binにインストールします

なぜ#2と#3を区別するのですか?わからない、それは私が時間をかけて開発したただの習慣です。/ optは通常、ファイルの深いツリーになりますが、実際には2つまたは3つの「もの」しかインストールされていないことがわかります。現時点では、optにlamppとlotusのメモがインストールされています。2つのディレクトリにはそれぞれ大きなツリーがあります。/ usr / local / binには、20または30のエントリがありますが、サブディレクトリはありません。

/ usr / binや/ usr / sbinにインストールするのは、手動で追加するもの(標準リポジトリからの単純なインストールの一部ではない)を別にするためです。


1

一方ではFilesystem Hierarchy Standardには、いくつかのガイダンスを提供します。ほとんどのディストリビューションは、パッケージをにインストールするのが好きだとわかりました/usr/share

このため、パッケージマネージャー(rpm / apt-get / emerge)を介してインストールされていないアプリケーションをインストールする方法を採用しました/usr/local。これにより、パッケージ管理で管理されていないアプリケーションやライブラリを、それらとは別に管理できます。

これは、Fedora CoreとGentooの両方でシステムを管理するのに役立つテクニックです。


0

デフォルトの場所は/bin、apt-getまたは同様のものを使用している場合、ほとんどすべてがデフォルトでインストールされる場所だと思っていたでしょう...

...ただし、多くの追加ファイルがある最新のプログラム(またはインストーラーのないプログラム)に関しては、内の独自のディレクトリに配置するのが好き/binです。


3
/ bin、/ usr / bin、および/ sbinの違いは何ですか?/ binはBINaryファイル用であるため、最も意味があります。
トーマスオーエンズ

0

通常は、主に/ usr、/ local、/ binなどの複数のフォルダーにインストールされます。プログラムのインストール先は、GDebiインストーラー([ファイル]タブの下)から確認できます。Netbeansを移動する場合は、/ optに移動することをお勧めします。Googleがそのようなものをインストールしているようだからです。


0

James Polleyの答えに同意しますが、実際には、複数のアカウント間でアプリケーションを共有する必要がない限り、デフォルトのディレクトリは非常に理にかなっています。たとえば、LinuxでFlexを実行するにはEclipse 3.0(廃止)をインストールする必要があり、$ HOME / eclipse3に配置しました。


0

複数のサーバーにインストールするほとんどのアドオンアプリに/ appsを使用するのが好きです。nfsサーバーの/ installs / appsにフォルダーのコピーを保持します。新しいLinuxサーバーを作成するときは、インストールフォルダーをマウントして/ appsをコピーします。新しいサーバーには多くの一般的なアプリがあります。この新しいサーバーに必要のないエントリを削除して完了です。環境変数やパスステートメントを設定するためにスクリプトを1つまたは3つ実行する必要があるかもしれませんが、それは多くの新しいサーバーをセットアップするのに必要なことです。

私はWindowsと.netのバックグラウンドから来ました。.netの約束の1つは、Windows xcopyを使用してほとんどのアプリをインストールできることでした。Linuxでも同じことを探しています。可能な場合は、RPMやyumなどでtarballを選択します。したがって、cp -rを使用して/ appsに展開し、将来の展開のためにアプリをnfsサーバーに追加できます。


2
質問はコンベンションを求めています。あなたは自分が何をするかを個人的に説明しました。少なくともこれをコンベンションに関連付けることができますか?
fixer1234
弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.