ディストリビューションと元の (「上流」) ソースに依存します。
ほとんどの autoconf および automake を使用するパッケージでは、--sysconfdir
を使用して構成ファイルを探すディレクトリを指定できます。 パラメータ。他のビルド システム (CMake など) にも同様のオプションがあります。ソース パッケージがこれらのビルド システムのいずれかを使用している場合、パッケージャーは適切なパラメーターを簡単に指定でき、パッチは必要ありません。そうでない場合でも (たとえば、アップストリーム ソースが独自のビルド システムを使用しているなどの理由で)、アップストリーム ソースにパッチを適用することなく、構成ファイルを特定の場所に移動するようにビルド構成を指定できることがよくあります。
そうでない場合、多くの場合、ディストリビューションはソースにパッチを追加して、「正しい」場所と見なされる場所にファイルを移動する必要があります。ほとんどの場合、ディストリビューション パッケージャーは、ソースを上記の意味で構成できるようにするパッチを作成します。これにより、上流のメンテナーにパッチを送信でき、保守/更新を続ける必要がなくなります。これは構成ファイルの場所に当てはまりますが、 bin
のような他のものにも当てはまります /sbin
実行可能ファイル (システム管理者のコマンドの解釈はディストリビューションによって異なります)、ドキュメントを書き込む場所など。
補足:フリー ソフトウェアを維持している場合は、お願いします パッケージャーがあなたと話しやすいようにします。そうでなければ、特に正当な理由もなく、そのようなパッチを維持する必要があります...
ソース コード ツリーにパッチを適用して、場所を調整しています。
すべてのディストリビューションが (個人的な) 好みや歴史的な慣習に基づいて選択できる十分な "標準" が用意されています。 唯一の解決策はめったにありません 利点があります。それは時々迷惑/混乱を招きますが、1つのディストリビューション内での一貫性が最も重要な目的です.プログラムの同様のもの(セットアップ/構成ファイルなど)がどこにあるかをすでに知っている場合、混乱が少なくなり、プログラムYのものがどこにあるかを推測しやすくなります. X.
パッチ適用例
私の python パッケージ ruamel.yaml
Debian Sid で利用できます。以前は ruamel.base
に依存していました 、および PyPI を介してインストールしたユーザーは、互換性のない古いバージョンの ruamel.base
をまだ持っている可能性があります インストールされています。 setup.py
の使用 /PyPI は実際のパッケージ管理ではないため、削除できません 依存関係を通じて以前にインストールされたパッケージ。 ruamel.base
の新しいバージョンを作成することで、PyPI ユーザーの問題を解決しました 古い ruamel.base
に関連する問題を取り除きました パッケージ化して ruamel.yaml
を作成 その新しいバージョンに依存します。
Sid の場合、これは問題ではありません:古いバージョンの ruamel.base
はインストールされていません (または、パッケージ管理によって削除できます)。そのため、ruamel.yaml
にあるパッチを適用します。 ruamel.yaml
の依存関係を削除する Sid の情報ページ ruamel.base
で .
他のディストリビューションにも同様の設定があります。例えば。ソース RPM ファイル (RedHat/CentOS/SuSE など) を作成するための仕様を見ると、パッケージの元の元の tarball を、構成/コンパイルの前に適用される 1 つ以上のパッチと組み合わせていることがわかります。 /P>