web-dev-qa-db-ja.com

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

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

73
Thomas Owens

Filesystem Hierarchy Standard によると、アプリケーションによっては、受け入れられる場所がいくつかあります。私はそれをここで広く引用しています。

  • binはもちろん「バイナリ」の略です
  • sbinは「サーバーバイナリ」の略で、以下のように定義されます。

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

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

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

これらをまとめて:

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

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


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

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

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

99
James Polley

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

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

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

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

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

5
DaveParillo

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

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

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

1

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

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

0
Dale

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

...ただし、多くの追加ファイルを含む最新のプログラム(またはインストーラーなしのプログラム)の場合は、/bin内の独自のディレクトリに配置します。

0
William Hilsum

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

0
digitxp

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

0
CarlF