何度か試してみましたが、今あなたが何を求めているのか理解できたと思います。
パッケージ化する前に特定のソフトウェアにパッチを適用するディストリビューションには、いくつかの理由が考えられます。非独占的なリストを提供しようと思います。他にも考えられる理由があるはずです。
この説明では、「アップストリーム」とは、ソフトウェアの公式開発者からの元のソース コードを指します
<オール>
アップストリームがなんらかの理由でメイン ブランチに組み込まれていない (またはまだ) パッチ。通常、そのパッケージのディストリビューションのパッケージ メンテナーが、前述のパッチに価値があると考えているため、またはディストリビューションの継続性を維持するためにパッチが必要であると考えているためです (Web サーバーがあり、定期的に php
に更新した後だとします)。 依存していたいくつかの機能が機能しなくなったり、古いスタイルから構成ファイルを読み取ることができなくなったりします)
ディストリビューションは、/etc/
のファイル システム階層の標準化されたパターンを好む傾向があります。;すべてのソフトウェア開発者は、適切な標準を構成するものについて独自の考えを持っている場合と、持っていない場合があります。したがって、ディストリビューション パッケージのメンテナーが最初に行う傾向があることの 1 つは、ビルド スクリプトにパッチを適用して、構成ファイルを構成し、残りのディストリビューションに対応する階層パターンで構成ファイルを期待することです。
構成の話題を続けると、最初の「パッチ」の 1 つは、いわば「箱から出して」ディストリビューションの残りの部分で動作するデフォルトの構成ファイルのセットである傾向があり、エンド ユーザーがすぐに開始できるようにします。作業構成を手動で分類するのではなく、インストール後に。
それは私の頭のてっぺんから外れています。他にもあるかもしれませんが、これがあなたにいくつかのアイデアを与えることを願っています.
@Shadurの回答に加えて、私の頭の上から:
- 一部のディストリビューションでは、別のパッケージで提供される組み込みライブラリまたはファイルの使用を推奨していません。たとえば、多くのソフトウェアには JQuery が組み込まれていますが、Debian にはそれを提供する libjs-jquery パッケージがあります。
- 多くの場合、アップストリームにはセキュリティ パッチと下位互換性のない変更が混在しています。新しいライブラリに依存します。より正確な証明書チェックを取得するためだけに、ディストリビューション全体に大幅な変更を加えないようにするために、パッケージのメンテナーは、セキュリティ パッチのみを選択することを選択する場合があります。
- 上流のソフトウェアは、他のソフトウェアと競合する可能性があります。たとえば、同じパスで異なるコンテンツのファイルを提供する場合があります。この競合を解決するには、別の場所でファイルを探すためのパッチが必要になる場合があります。
- アップストリームは、他のソフトウェア構成ファイルに何かを手動で追加する手順に満足していることがよくあります。これは、パッケージをインストールおよびアンインストールするときにエラーが発生しやすいため、ディストリビューションは *.d ディレクトリでフラグメント ファイルを使用することを好む場合があります。
- アップストリームの一部はディストリビューションのライセンスと互換性がない可能性があるため、パッケージのメンテナーは問題のある部分にパッチを適用することを決定する場合があります。
- アップストリームは特定の他のソフトウェア (Apache など) を想定したパスを使用しますが、メンテナーは一般的な Web サーバーをサポートすることを望んでいます。
- 場合によっては、上流の開発者が通信しなくなり、ソフトウェアが劣化することがあります。そのため、機能を維持するにはパッチが必要です。
いくつかの理由があります:
<オール>Linux にはユニバーサル パッケージング ソフトウェアなどというものはありません:
- 適切
- うむ
- パックマン
- ...
分岐のため