異なるディストリビューションは、プログラムの構成ファイルの場所をどのように変更しますか?


14

多くのLinuxプログラムは、構成ファイルの場所がディストリビューションに依存していると述べています。さまざまなディストリビューションがこれをどのように行うのかと思っていました。彼らは実際にソースコードを変更しますか?これらの場所を設定するビルドパラメーターはありますか?これを検索しましたが、情報が見つかりません。私はそれがそこにあることを知っています、私はそれを見つけることができないようです。これに関して「Linuxの方法」とは何ですか?

回答:


14

ディストリビューションと元の(「上流」)ソースに依存します。

autoconfおよびautomakeを使用するほとんどのパッケージでは、--sysconfdirパラメータを使用して設定ファイルを探すディレクトリを指定できます。他のビルドシステム(CMakeなど)にも同様のオプションがあります。ソースパッケージがこれらのビルドシステムのいずれかを使用する場合、パッケージャーは適切なパラメーターを簡単に指定でき、パッチは必要ありません。そうでない場合でも(たとえば、アップストリームソースが自家製のビルドシステムを使用するため)、多くの場合、アップストリームソースにパッチを当てることなく、構成ファイルを特定の場所に移動するビルド構成を指定できます。

そうではない場合、多くの場合、ディストリビューションはソースにパッチを追加して、「正しい」場所と思われる場所にファイルを移動する必要があります。ほとんどの場合、ディストリビューションパッケージャーは、上記の意味でソースを構成できるようにするパッチを作成します。これにより、アップストリームメンテナーにパッチを送信でき、メンテナンス/更新を続ける必要がなくなります。これは、構成ファイルの場所だけでなく、bin/ sbin実行可能ファイル(システム管理者のコマンドの解釈はディストリビューションによって異なります)、ドキュメントを書き込む場所など、その他の場合にも当てはまります。

サイドノート:あなたは、いくつかのフリーソフトウェアを維持する場合は、してください、それは簡単にパッケージャがあなたに話をするために作ります。それ以外の場合、特別な理由がない限りそのようなパッチを維持する必要があります...


8

ソースコードツリーに適用され、場所を適応させるパッチがあります。

すべてのディストリビューションが(個人的な)好みや歴史的慣習に基づいて選択できる十分な「標準」があります。利点のみを持つソリューションはほとんどありません。面倒なことや混乱を招くこともありますが、1つのディストリビューション内の一貫性が最も重要な目標です。プログラムYが似ているもの(セットアップ/構成ファイルなど)がどこにあるかを既に知っていると、プログラムYの場所がわかりやすく推測しやすくなりますバツ。

パッチ適用の例

私のpythonパッケージruamel.yamlはDebian Sidで利用可能です。以前はに依存していましたがruamel.base、PyPI経由でインストールしたユーザーには、以前の互換性のないバージョンがruamel.baseインストールされている可能性があります。setup.py/ PyPIの使用は実際のパッケージ管理ではないため、依存関係を介して以前にインストールしたパッケージを削除することはできません。PyPIユーザーの問題を解決するために、新しいバージョンを作成し、ruamel.base古いruamel.baseパッケージに関連する問題を取り除き、ruamel.yamlその新しいバージョンに依存するようにしました。

Sidの場合、これは問題ではありません。古いバージョンはruamel.baseインストールされていません(またはパッケージ管理を介して削除できます)。そのため、パッチを適用します。これは、ruamel.yamlSid情報ページruamel.yamlon の依存関係を削除しruamel.baseます。

他のディストリビューションにも同様の設定があります。たとえば、ソースRPMファイルを作成する仕様(RedHat / CentOS / SuSEなど)を見ると、パッケージの元の元のtarballを、構成/コンパイルの前に適用される1つ以上のパッチと組み合わせることがわかります。 。

弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.