ソフトウェアベンダーは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/bin
Debianベースのシステムにサードパーティの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年)。