「標準」とは何ですか-アプリケーション(バイナリだけでなく、配布全体)を/ usr/localまたは/ usr/local/shareに配置する必要があります。
たとえば、scala or weka-これには、例、バイナリ、ライブラリなどが含まれています。したがって、
/usr/local/scala-2.9.1
または
/usr/local/share/scala-2.9.1
私は唯一の管理者なので、大したことではありませんが、自分の習慣ではなく、広く使用されているものを使用することを好みます。
重要:アプリを/ usr/local/bin、/ usr/local/libなどに分割する必要がある場合については質問していません。むしろ、アプリケーション全体で1つのメインディレクトリを保持する必要がある場合について尋ねます。
このような状況では、/ optがより標準的だと思います。 Filesystem Hierarchy Standardの関連セクション を以下に引用します。
ディストリビューションは/ optにソフトウェアをインストールできますが、ローカルシステム管理者の同意なしに、ローカルシステム管理者がインストールしたソフトウェアを変更または削除してはなりません。
根拠アドオンソフトウェアに/ optを使用することは、UNIXコミュニティでよく確立されている慣行です。 System Vアプリケーションバイナリインターフェイス[AT&T 1990]は、System Vインターフェイス定義(第3版)に基づいており、ここで定義されているものとよく似た/ opt構造を提供します。
Intel Binary Compatibility Standard v。2(iBCS2)も/ optに同様の構造を提供します。
一般に、システム上のパッケージをサポートするために必要なすべてのデータは、/ opt /内に存在している必要があります。
特に一部のバイナリソフトウェアに固定パス名が見つかった場合は、ディストリビューションがインストールされたソフトウェアとローカルにインストールされたソフトウェアの間で競合が発生する可能性があるため、/ optを使用したディストリビューションに関する小さな制限が必要です。
/ opt /以下のディレクトリの構造はソフトウェアのパッケージャに任されていますが、パッケージは/ opt //にインストールし、/ opt/packageのガイドラインと同様の構造に従うことをお勧めします。この構造から逸脱する正当な理由は、/ opt // libまたは/ opt // binにファイルがインストールされているサポートパッケージのためです。
/usr/local/share
は、特定のアーキテクチャ/ OSバージョンに固有ではないファイルにのみ使用してください。
その後、/usr/local
の既存のサブディレクトリにファイルを配布するか、/usr/local
に新しい専用ディレクトリを作成するかは、あなた次第です(ただし、後者は実行可能ファイルPATH
、LD_LIBRARY_PATH
、またはMANPATH
)。
[〜#〜] fhs [〜#〜] をご覧ください
/opt
が一般的になるまで、通常の場所は/usr/local/lib/<package>
でした。
ローカルアプリケーションをインストールする場合、アクセス方法と更新方法に応じて、複数のオプションがあります。また、一部のメソッドは既存のシステムにより似ており、一部はアドホックです。 「最良の」ソリューションは、物事を管理しやすくするものであることをお勧めします。
この回答は、カスタムインストールを作成するパッケージの数に基づいて分割しました。分割は私自身の経験に基づいています。これらの経験は、パッケージの管理にかかる時間と、何かを台無しにするリスクを比較検討しています。私が共通の標準の知識を持っているという意味ではなく、これを決定を下す際の参照点として意味します。
少数のパッケージのみ、/opt
にアドオンパッケージを配置しますそして、彼らは何か他のものを台無しにすることができます。これは、NASで使用する方法です。ただし、この方法ではバイナリがPATHから外れるため、手動で追加する必要があります。インストールするパッケージが少ない場合はこれでうまくいきますが、パッケージが多い場合はかなり面倒になります。
ディレクトリを上書きするだけなので、ここでの更新は非常に簡単です。
長所:
短所:
PATH
を乱雑に見せます少数のパッケージの場合、ルート権限が必要かどうかに応じて、/usr/local/<your package>
を使用し、/usr/local/bin
または/usr/local/sbin
から実行可能ファイルをsym-linkすることをお勧めします。これにより、何か新しいものが追加されるたびにPATHを変更する必要がなくなり、PATHはクリーンなままです。これは、すべての非pacmanパッケージおよびAURパッケージに対して、私のArchラップトップで使用する方法です。
更新は、パッケージディレクトリを上書きし、シンボリックリンクがまだ有効であることを確認し、有効でない場合は修正することで行われます。
長所
PATH
を乱雑にしない短所:
多くのパッケージ用。これはあなたが望んでいるケースではないので、私は簡単に説明します。パッケージをbin
、lib
、share
などに分割し、/usr/local
にインストールすることをお勧めします。これは構造をきれいに保つためです。また、誰がどこに書けるかなどを指定することもできます。たとえば、root以外の人が実行可能ファイルを変更することは望ましくありません。
ここでは、単一のディレクトリ以外に書き込む必要があるため、更新は少し難しくなります。全体をパッケージ化し、パッケージマネージャーに残りを処理させることをお勧めします。
シェア
share
ディレクトリ自体は、Faheemの link に記載されているように、アーキテクチャに依存しないファイル用であり、アーキテクチャに依存するファイルはlib
、lib32
、lib64
などに移動する必要があります。