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


21

「標準」とは何ですか-アプリケーション(バイナリだけでなく、配布全体)を/ usr / localまたは/ usr / local / shareに配置する必要があります。

たとえば、scalaやwekaなど、サンプル、バイナリ、ライブラリなどが含まれています。だからそれは

/usr/local/scala-2.9.1 

または

/usr/local/share/scala-2.9.1

私は唯一の管理者であるため、大したことではありませんが、自分の習慣ではなく、広く使用されているものを使用することを好みます。

重要:アプリを/ usr / local / bin、/ usr / local / libなどに分割する必要がある場合については、質問していません。むしろ、アプリケーション全体で1つのメインディレクトリを保持する必要がある場合について質問しています。


6
このような状況では、/ optがより一般的だと思います。
ファヒムミタ

@Faheem Mitha、非常に良い点。あなたのおかげで私は、そのような説明は、「Windowsは、独自のディレクトリツリーのCに新しいソフトウェアをインストールするには方法と同じようには/ opt / 'プロバイダのディレクトリツリーを、:\ WINDOWS \ Progamファイル\」が見つかりプログラム名」からlinuxtopia.org/ online_books / linux_beginner_books / ...あなたがもらえてください?私はありがとうの答えとしてそれをマークしますので、答えとしてあなたのコメントを投稿してください。
greenoldman

@greenoldman:また、すべてのファイルを単一のディレクトリに保持することは、Unixにアプリケーションをインストールするための「標準的な」方法ではないこと認識してください。確かに正しい答えですが、従来のUnix / Linuxソフトウェアでは「広く使用されていません」。そこ複数のdirsでファイルを分割するのに最適な理由があり、また、differenciateまでから/opt/usr/usr/local
MestreLion

例えば、単一のすべてのアプリケーションからのすべての実行を維持する/usr/bin(または/usr/local/bin)は、あなたの$ PATHには、各ソフトウェアの編集にそれを必要とせずにWindowsの中に存在しない概念をすべてのソフトウェアに到達することができます
MestreLion

回答:


19

このような状況では、/ optの方がより標準的だと思います。Filesystem Hierarchy Standardの関連セクションを以下に引用します。

ディストリビューションはソフトウェアを/ optにインストールできますが、ローカルシステム管理者の同意なしにローカルシステム管理者がインストールしたソフトウェアを変更または削除してはなりません。

根拠アドオンソフトウェアに/ optを使用することは、UNIXコミュニティで確立された慣行です。System Vインターフェイス定義(第3版)に基づいたSystem Vアプリケーションバイナリインターフェイス[AT&T 1990]は、ここで定義したものと非常によく似た/ opt構造を提供します。

Intel Binary Compatibility Standard v。2(iBCS2)も、/ optに同様の構造を提供します。

通常、システム上のパッケージをサポートするために必要なすべてのデータは、/ etc / opt /および/ var / opt /にコピーされるファイルと/ optの予約ディレクトリを含む/ opt /内に存在する必要があります。

特に一部のバイナリソフトウェアで見つかった固定パス名の場合、ディストリビューションでインストールされたソフトウェアとローカルにインストールされたソフトウェアの間で競合が発生する可能性があるため、/ optを使用したディストリビューションの軽微な制限が必要です。

/ opt /以下のディレクトリの構造はソフトウェアのパッケージャーに任されていますが、パッケージは/ opt //にインストールし、/ opt / packageのガイドラインと同様の構造に従うことをお勧めします。この構造から分岐する正当な理由は、/ opt // libまたは/ opt // binにインストールされたファイルがあるサポートパッケージのためです。


5

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

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

見ていFHSを


ありがとうございました。したがって、Windowsからの類推である場合、/ usr / local / SPECIAL_APPであり、その中にそのサブディレクトリがあるはずですよね?
greenoldman

@greenoldman:いや。Windowsでは、あなたは通常、Linuxでは、あなたが通常の上にそれらを分割し、単一のディレクトリ内のすべてのファイルを保持:WindowsとLinuxは、異なるモデルを使用しているため、いかなるアナロジーは収まらないだろうbinsharelib、など
MestreLion

3

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


1
私が読んだことから、/ optは非常に一般的で、広く使用されていないだけですが、リポジトリで利用可能なパッケージの量を考えると、これは驚きではありません。
greenoldman

0

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

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

いくつかのパッケージについてのみ、アドオンパッケージをに配置し/opt、他のすべての邪魔にならないようにします。これは、NASで使用する方法です。ただし、この方法ではバイナリがPATHから除外されるため、手動で追加する必要があります。これは、インストールするパッケージが数個しかない場合はうまく機能しますが、多数ある場合は非常に混乱します。

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

長所:

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

短所:

  • インストールするパッケージの数が多い場合、かなり退屈になります
  • 作りPATHルック乱雑を

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

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

長所

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

短所:

  • セットアップの作業が増える
  • 1つのパッケージのみを削除するには、検索が必要です

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

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

シェア

shareFaheemの中で述べたように、ディレクトリ自体は、アーキテクチャに依存しないファイルのためにあるリンクに行くべきとアーキテクチャに依存するファイルliblib32lib64、など


パッケージの数に基づいてアドバイスを与えることは役に立ちません。パッケージがどのグループに属しているかを知るにはどうすればよいですか?
アロイスマーダル

また、「お勧めです」と言うときは、参照元またはそれがあなたの推奨であることを明確に参照してください(後者を推測しています...?)
アロイス・マーダル

ちなみに、/ optでアプリが混乱する可能性が/ usrなどに広がっている場合よりも少ないことはわかりません。他のアプリを混乱させることは、適切に名前を付けてバグを入れないことです。スクリプトをインストールします。
アロイスマーダル

それは間違いなく物事を台無しにするネーミングについてです。それは私が過去に経験したことであり、それが私が私の「余分な」パッケージを他のすべてから遠ざけるのが好きな理由です。私はまだそれが物事をlookく見えるようにしたくない。
ラウリTšili15年

そして、はい、あなたは私が他のどこでも「お勧めします」を使用した私の答えからわかるように、「お勧めです」について正しいです。スペルを修正し、なぜ推奨するのかを明確にしました。繰り返しますが、これはあくまで私の見解であり、最終的な答えを意味するものではありません。
ラウリツィリ
弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.