web-dev-qa-db-ja.com

アプリケーションを/ usr / localまたは/ usr / local / shareに配置する必要がありますか?

「標準」とは何ですか-アプリケーション(バイナリだけでなく、配布全体)を/ 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つのメインディレクトリを保持する必要がある場合について尋ねます。

22
greenoldman

このような状況では、/ 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にファイルがインストールされているサポートパッケージのためです。

20
Faheem Mitha

/usr/local/shareは、特定のアーキテクチャ/ OSバージョンに固有ではないファイルにのみ使用してください。

その後、/usr/localの既存のサブディレクトリにファイルを配布するか、/usr/localに新しい専用ディレクトリを作成するかは、あなた次第です(ただし、後者は実行可能ファイルPATHLD_LIBRARY_PATH、またはMANPATH)。

[〜#〜] fhs [〜#〜] をご覧ください

5
symcbean

/optが一般的になるまで、通常の場所は/usr/local/lib/<package>でした。

3
Teddy

ローカルアプリケーションをインストールする場合、アクセス方法と更新方法に応じて、複数のオプションがあります。また、一部のメソッドは既存のシステムにより似ており、一部はアドホックです。 「最良の」ソリューションは、物事を管理しやすくするものであることをお勧めします。

この回答は、カスタムインストールを作成するパッケージの数に基づいて分割しました。分割は私自身の経験に基づいています。これらの経験は、パッケージの管理にかかる時間と、何かを台無しにするリスクを比較検討しています。私が共通の標準の知識を持っているという意味ではなく、これを決定を下す際の参照点として意味します。

少数のパッケージのみ/optにアドオンパッケージを配置しますそして、彼らは何か他のものを台無しにすることができます。これは、NASで使用する方法です。ただし、この方法ではバイナリがPATHから外れるため、手動で追加する必要があります。インストールするパッケージが少ない場合はこれでうまくいきますが、パッケージが多い場合はかなり面倒になります。

ディレクトリを上書きするだけなので、ここでの更新は非常に簡単です。

長所:

  • 簡単な
  • セットアップが速い
  • システムの他の部分に影響を与える可能性はありません
  • アンインストールはインストールと同じくらい簡単です

短所:

  • インストールするパッケージの数が多い場合、かなり面倒になります
  • PATHを乱雑に見せます

少数のパッケージの場合、ルート権限が必要かどうかに応じて、/usr/local/<your package>を使用し、/usr/local/binまたは/usr/local/sbinから実行可能ファイルをsym-linkすることをお勧めします。これにより、何か新しいものが追加されるたびにPATHを変更する必要がなくなり、PATHはクリーンなままです。これは、すべての非pacmanパッケージおよびAURパッケージに対して、私のArchラップトップで使用する方法です。

更新は、パッケージディレクトリを上書きし、シンボリックリンクがまだ有効であることを確認し、有効でない場合は修正することで行われます。

長所

  • PATHを乱雑にしない
  • 基本システムには影響しません
  • すべてのアドオンを削除し、クリーンなベースシステムに戻すのは非常に簡単です

短所:

  • セットアップするためのより多くの仕事
  • 1つのパッケージのみを削除すると、検索する必要があります

多くのパッケージ用。これはあなたが望んでいるケースではないので、私は簡単に説明します。パッケージをbinlibshareなどに分割し、/usr/localにインストールすることをお勧めします。これは構造をきれいに保つためです。また、誰がどこに書けるかなどを指定することもできます。たとえば、root以外の人が実行可能ファイルを変更することは望ましくありません。

ここでは、単一のディレクトリ以外に書き込む必要があるため、更新は少し難しくなります。全体をパッケージ化し、パッケージマネージャーに残りを処理させることをお勧めします。

シェア

shareディレクトリ自体は、Faheemの link に記載されているように、アーキテクチャに依存しないファイル用であり、アーキテクチャに依存するファイルはliblib32lib64などに移動する必要があります。

0
Lauri Tšili