デフォルトでは、すべてのファイルは、/usr/bin
実行可能ファイルと実行可能ファイルに必要な他のファイル(構成ファイル、データファイルなど)を含むディレクトリではなく、スタンドアロン実行可能ファイルであることを確認しました。
複数のファイルで構成されたアプリケーションを開発する場合、どこに保存する必要がありますか?私の最初の本能は、アプリケーションのディレクトリをに保存/opt
し、実行可能ファイルへのソフトリンクを/usr/bin
。ただし、Google Chromeはマイコンピュータでこれを行う唯一のアプリケーションなので、より標準的な方法があると思います。
答え1
インストールされたソフトウェアのファイルを構成する方法には、パッケージごとまたはタイプごとに2つの主な方法があります。
/usr/bin
Unixシステムは、実行可能ファイル、システム管理者にのみ役立つ実行可能ファイル、プロセッサ/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/APPLICATION
ls
rm -r
以下のファイルは/opt
通常手動で管理されますが(この組織のポイント)、パッケージ管理者が管理するパッケージが存在する可能性があります。たとえば、Chromeのdebパッケージはこれを/opt
。/opt/google/chrome
これにより、ディストリビューション間のサポートがより簡単になります。
アプリケーションとディストリビューションがLinuxでファイルを構成する方法の詳細を知りたい場合は、次をお読みください。FHS。
簡単に言うと:
- パッケージ(deb、rpmなど)をビルドするときは、ディストリビューションが選択した
/usr
ディレクトリ(/usr/man
vs/usr/share/man
、/usr/lib
vs/usr/libexec
、/usr/lib
vs/usr/lib64
など)を使用してインストールしてください。 - 直接インストールする場合(例:)デフォルトのインストールは、
make install
(デフォルトのサブディレクトリ/usr/local
:実行可能ファイルは/usr/local/bin
Mediumに、データファイルはMediumにあります)、システム管理者が選択できる他の選択肢をサポートします。インストール中にファイルがコピーされるディレクトリは、ファイルが使用されるディレクトリと異なる場合があります。/usr/local/share/APPLICATION
お店(望むより追跡プログラム)。
/opt
どちらのシナリオも可能ですが、システム管理者にさらに負担をかけます。
答え2
パッケージを作成する場合は、ターゲットのディストリビューションによって多少異なります。あなたは従うことができますファイルシステム階層標準。 Debian は FHS に従います。いくつかの例外。基本的に:
/etc
:ホスト固有のシステム構成/usr/bin
: ほとんどのユーザーコマンド/usr/lib
:プログラミングとパッケージング用のライブラリ/usr/share
: スキーマ独立データ
複数のアーキテクチャをサポートするDebianベースのパッケージシステムでは、アーキテクチャに依存しないデータは通常別々のパッケージに分割されます。
たとえば、次の方法をご覧ください。apache2
、apache2-bin
、apache2-data
そしてapache2-doc
Ubuntuのパッケージは構成されています。