アプリケーションが複数のファイルで構成されている場合、どこにインストールする必要がありますか?

アプリケーションが複数のファイルで構成されている場合、どこにインストールする必要がありますか?

デフォルトでは、すべてのファイルは、/usr/bin実行可能ファイルと実行可能ファイルに必要な他のファイル(構成ファイル、データファイルなど)を含むディレクトリではなく、スタンドアロン実行可能ファイルであることを確認しました。

複数のファイルで構成されたアプリケーションを開発する場合、どこに保存する必要がありますか?私の最初の本能は、アプリケーションのディレクトリをに保存/optし、実行可能ファイルへのソフトリンクを/usr/bin。ただし、Google Chromeはマイコンピュータでこれを行う唯一のアプリケーションなので、より標準的な方法があると思います。

答え1

インストールされたソフトウェアのファイルを構成する方法には、パッケージごとまたはタイプごとに2つの主な方法があります。

/usr/binUnixシステムは、実行可能ファイル、システム管理者にのみ役立つ実行可能ファイル、プロセッサ/usr/sbinアーキテクチャに依存するコードライブラリ、その他のファイル、プロセッサ/usr/lib独立ファイル、/usr/shareマニュアルページ/usr/man、その他のドキュメントなど、種類別にプログラムファイルを構成する傾向があります。/usr/docなど。 (これは完全なリストではなく、多くのバリエーションがあります。)私はプレフィックスを使用しましたが、/usr一般的にこれらのファンアウトは3つあります。 at/起動プログラムに必要です(/usr区別が常に関連していないため、時には結合されます)、at手段オペレーティング/usrシステムに付属のプログラム、および/usr/localシステム管理者が手動でインストールするプログラムを意味します。

/usrほとんどのLinuxシステムでは、(および)の違いは、(および)がパッケージマネージャによって管理されていること/usr/localです。したがって、タイプ固有の構造を使用してアプリケーションをインストールする場合は、パッケージ(rpm、debなど)としてデプロイするときは以下にし、パッケージとしてデプロイしない場合は以下にする必要があります(たとえば、アーカイブディストリビューションとして手動でデプロイするなど)。解く)。/usr//usr/local/usr/usr/local

/etc設定ファイルはシステム管理者が変更するため、通常は全体が配置されます。可能であれば、アプリケーションがおよびまたは/etc(適切に)構成データを読み取り、の設定をまたはの設定に上書きするようにします/usr/etc。または、他のデータと構成データをマージするのが一般的であるため、または存在しないシステムがたくさんあります。/usr/local/etc/etc//usr/etc/usr/local/etc/usr/share/usr/local/share/usr/etc/usr/local/etc

タイプ別にクリーンアップすると、ファイルが使用される場所に配置されるという利点があります。すべての実行可能ファイルは実行可能ファイル検索パス()のディレクトリにあり、すべての$PATHライブラリはライブラリ検索パスにあり、すべてのマニュアルページはマニュアルページ検索パスにあります。この組織の 1 つの制限は、パッケージごとにインストールされたファイルを追跡するためにパッケージマネージャが必要であることです。 Linuxのほとんどのソフトウェアはパッケージマネージャを介して配布されるため、ほとんどのソフトウェアは/usr

ファイルを構成するもう1つの方法は、パッケージごとに構成することです/opt。標準位置は通常背中で構成され、時には追加レベルなどで構成される。ただし、アプリケーションはディレクトリを自由に管理できます。一部は他のファイルを直接置きます。これにより、パッケージ管理が容易になりますが(インストールされたソフトウェアの一覧表示、削除のために正しい場所に解凍されます)、管理者またはユーザーがソフトウェアを使用するのが難しくなります。パスを検索するには、適切な場所を追加するか、フルパスを使用するか、シンボリックリンクを作成する必要があります。/opt/APPLICATION/bin/opt/APPLICATION/lib/opt/AUTHOR/APPLICATION/bin/opt/APPLICATIONlsrm -r

以下のファイルは/opt通常手動で管理されますが(この組織のポイント)、パッケージ管理者が管理するパッケージが存在する可能性があります。たとえば、Chromeのdebパッケージはこれを/opt/opt/google/chromeこれにより、ディストリビューション間のサポートがより簡単になります。

アプリケーションとディストリビューションがLinuxでファイルを構成する方法の詳細を知りたい場合は、次をお読みください。FHS

簡単に言うと:

  • パッケージ(deb、rpmなど)をビルドするときは、ディストリビューションが選択した/usrディレクトリ(/usr/manvs /usr/share/man/usr/libvs /usr/libexec/usr/libvs/usr/lib64など)を使用してインストールしてください。
  • 直接インストールする場合(例:)デフォルトのインストールは、make install(デフォルトのサブディレクトリ/usr/local:実行可能ファイルは/usr/local/binMediumに、データファイルはMediumにあります)、システム管理者が選択できる他の選択肢をサポートします。インストール中にファイルがコピーされるディレクトリは、ファイルが使用されるディレクトリと異なる場合があります。/usr/local/share/APPLICATIONお店(望むより追跡プログラム)。

/optどちらのシナリオも可能ですが、システム管理者にさらに負担をかけます。

答え2

パッケージを作成する場合は、ターゲットのディストリビューションによって多少異なります。あなたは従うことができますファイルシステム階層標準。 Debian は FHS に従います。いくつかの例外。基本的に:

  • /etc:ホスト固有のシステム構成
  • /usr/bin: ほとんどのユーザーコマンド
  • /usr/lib:プログラミングとパッケージング用のライブラリ
  • /usr/share: スキーマ独立データ

複数のアーキテクチャをサポートするDebianベースのパッケージシステムでは、アーキテクチャに依存しないデータは通常別々のパッケージに分割されます。

たとえば、次の方法をご覧ください。apache2apache2-binapache2-dataそしてapache2-docUbuntuのパッケージは構成されています。

関連情報