多くの Linux プログラムでは、構成ファイルの場所がディストリビューションによって異なることを示しています。他のディストリビューションでこれを行う方法を知りたいです。実際にソースコードを修正しましたか?これらの場所を設定するビルドパラメータはありますか?これを検索してみましたが、情報がありません。そこにいるのはわかりますが、見つかりません。これに対する「Linux方式」とは何ですか?
答え1
これは、展開とソース(「アップストリーム」)ソースによって異なります。
autoconfとautomakeを使用するほとんどのパッケージでは、引数を使用して設定ファイルを検索するディレクトリを指定できます--sysconfdir
。他のビルドシステム(CMMAkeなど)にも同様のオプションがあります。ソースパッケージがこれらのビルドシステムの1つを使用している場合、パッケージャは正しいパラメータを簡単に指定でき、パッチは必要ありません。それ以外の場合(たとえば、アップストリームソースがいくつかのローカルビルドシステムを使用しているため)、通常はアップストリームソースにパッチを適用することなく、設定ファイルを特定の場所に移動するためにいくつかのビルド設定を指定することが可能です。
そうでない場合、通常、ディストリビューションはファイルを「正しい」場所と見なす場所に移動できるようにソースにパッチを追加する必要があります。ほとんどの場合、デプロイメント・パッケージャはソースを上記のように構成し、メンテナンス/更新を必要とせずにアップストリーム管理者にパッチを送信できるパッチを作成します。これは構成ファイルの場所の場合ですが、bin
/sbin
実行可能ファイル(sysadminコマンドの解釈はディストリビューションによって異なります)、文書が作成される場所などの他の項目も同様です。
注意:一部のフリーソフトウェアを維持する場合お願いします包装業者があなたとより簡単に会話できるようにしてください。それ以外の場合は、特別な理由なくこのようなパッチを維持する必要があります。
答え2
位置を調整するためにソースツリーにパッチを適用しました。
(個人)嗜好や歴史的慣行に応じて、各ディストリビューションを選択するのに十分な「標準」があります。解決策はほとんどありませんただ利点があります。これは時々迷惑または混乱する可能性がありますが、ディストリビューション内の一貫性が最も重要な目標です。プログラムYに関する同様のもの(設定/設定ファイルなど)がどこにあるか既に知っている場合は、混乱が少なくなり、内容を推測しやすくなります。プログラムYはXです。
パッチ適用の例
私のPythonパッケージはruamel.yaml
Debian Sidで利用可能です。かつてはこれに依存しておりruamel.base
、PyPIを介してインストールするユーザーはまだ以前の互換性のないバージョンがインストールされている可能性がありますruamel.base
。 / PyPIを使用するsetup.py
ことは真のパッケージ管理ではないため削除依存関係を介して以前にインストールされたパッケージ。私はruamel.base
以前のパッケージに関する問題を取り除き、ruamel.base
この新しいバージョンに依存する新しいバージョンを作成してPyPIユーザーの問題を解決しましたruamel.yaml
。
Sidの場合、これは問題ではありません。ruamel.base
以前のバージョンはインストールされていません(またはパッケージ管理から削除できます)。だから彼らは申請しました修理する、あなたはできますruamel.yaml
シードの情報ページruamel.yaml
これにより、onへの依存関係が削除されますruamel.base
。
他のディストリビューションにも同様の設定があります。たとえば、ソースRPMファイル(RedHat / CentOS / SuSEなど)を生成するための仕様を見てみると、パッケージの元のtarballを構成/コンパイル前に適用される1つ以上のパッチと組み合わせることがわかります。