ベンダーが提供するバイナリのFHS準拠のインストールディレクトリは何ですか?

ベンダーが提供するバイナリのFHS準拠のインストールディレクトリは何ですか?

ソフトウェアベンダーはLinuxファイルシステム階層標準(FHS)互換性のある Debian パッケージ。バイナリにはどのインストールディレクトリを使用する必要がありますか?

システムのアップグレードに含まれるソフトウェア、または/binシステム/usr/binのアップグレードに含めることができるソフトウェア。このディレクトリにバイナリをインストールできますか?または、このディレクトリはデフォルトのシステムディストリビュータ用に予約されていますか?

/usr/local/binシステム管理者インストール用のソフトウェアです。以下の内容はすべて、/usr/localシステムのアップグレードにより変更してはいけません。ベンダーから提供された Debian パッケージをパッケージリポジトリからダウンロードし、リポジトリがapt-add-repository.

/opt/<vendor>/bin大丈夫そうです。しかし、他のベンダーとの競合を避けるために、このディレクトリをどこかに登録する必要はありませんか?そして、このディレクトリが$PATH機能するようにFHS準拠の方法で統合するにはどうすればよいですか?

ベストアンサー1

相談しようDebian メソッドの概要/選択:

/opt/ 追加のアプリケーションパッケージのプリコンパイル済み「.deb」ではなく、バイナリディストリビューション(tar'ed..)がここにあります。

/opt/bin/ : 最上位階層と同じ

/opt/include/ : 最上位階層と同じ

/opt/lib/ : 最上位階層と同じ

/opt/sbin/ : 最上位階層と同じ

/opt/share/ : 最上位階層と同じ

.deb実際、私はまた、アプリケーションがそこにパッケージをインストールするのを見ました。理想的には、/bin特に次のように定義されるため、/usr/bin保存する必要があります。/bin

すべてのユーザーのためのデフォルトのコマンド実行可能ファイル(バイナリ)(例:cat、ls、cp)(特にシステムの起動または回復に必要なファイル)

実際、 /usr/binDebianベースのシステムにサードパーティのDebianパッケージがインストールされていることがよくあります。これは/usr/bin通常変数の一部PATHなので、コマンドラインから簡単に起動できるためです。 「/binまたは/usr/binにあるソフトウェアは、システムアップグレードで上書きされる可能性があります」と言われました。アップグレードの目的は、ファイルから特定のファイルを削除することであるため、上書きできますが、/usr/bin一部の.debパッケージが明示的にファイルの削除を指定しない限り(たとえば、以前のバージョンのドッキングステーションを削除した小さなパッケージが見つかりました)。ソフトウェアが特定のバイナリに依存している場合、アップグレードは危険です。バージョン表示されます/usr/bin

私が見たもう一つの一般的なものはシンボリックリンクです。入力は/usr/bin他の場所へのシンボリックリンクです。$PATHあなたの質問で述べたように、これはバイナリを統合する実行可能なオプションかもしれません。さらに、これはDebianの方針とも一致しています。FHSに関する包装パンフレット状態:

4.4。 /usr/bin: ほとんどのユーザーコマンド

4.4.1.目的

これはシステムで実行可能なコマンドのホームディレクトリです

4.4.2.要件

/usr/bin にはサブディレクトリはありません。

したがって、アプリケーションにサブディレクトリ(サブモジュールディレクトリがあるPythonモジュールなど)が必要な場合は、アプリケーションを別の場所に配置するのが最善です(Pythonならつまり、/usr/lib/python*/dist-packagesディレクトリ)とサブディレクトリを作成し、シンボリックリンクを作成します。/usr/bin/my_binary

$PATH一部のベンダーから見た別の統合は、ユーザーの$PATH変数を編集することによって~/.bashrc

「しかし、他のプロバイダとの競合を避けるために、このディレクトリをどこかに登録する必要はありませんか?上記のDebianドキュメントにはディレクトリの登録について何も記載されていないので、答えは次のようになります。そうする必要はありません。しかし、衝突を本当に避けたい場合は、パターンに従うことができます/opt/vendor/package-v-1.2/bin。つまり、パッケージとリリースバージョンを指定します(おそらく1年)。

おすすめ記事