数字ではなくパッケージコンポーネントをバージョンとして使用するのはなぜですか?

数字ではなくパッケージコンポーネントをバージョンとして使用するのはなぜですか?

Ubuntu(Ubuntuだけでなく)デフォルトのリポジトリでは、次のことがわかります2.2.14-5ubuntu8.12

管理者はなぜそんなに奇妙なバージョンを提供しますか?中央パッケージリポジトリ

2.2.14-42このバージョンでは解決できない作業は何ですか?

答え1

名前空間:

  • 2.2.14apache.org のアップストリームパッケージのバージョン番号です。
  • -5Debian パッケージのバージョンですか?
  • Ubuntuはここにいくつかの修正を加えて、繰り返すたびにバージョン番号を増やします。ubuntu8.12

-6Debianがaを作成し、Ubuntuがそれを採用することを選択した場合、2.2.14-6Ubuntuにはaなどがあり、2.2.14-6ubuntu1数字は大きくなります。これはアップグレードと見なす場合に重要ですapt

自分で編集するには、独自の名前空間を追加する必要があるかもしれません:2.2.14-5ubuntu8.12zerkms1

Ubuntuが2.2.14-5ubuntu8.13または2.2.14-5ubuntu9または2.2.14-6をリリースするとアップグレードされます。

答え2

バージョン文字列の一部は「アップストリーム」バージョンです。 上流元のソースに向かって移動することを意味し、下流配布パッケージを意味します。私は通常これに実質的な違いがないと思うので、基本的に2つのステップ(ソースソースコードとコンパイルされた配布パッケージ)があります。

たとえば、bash-4.2.39はこれを行います。 bash-4.2.39の元のソースは、Fedora、Ubuntu、Archなどを使用してもまったく同じで、同じ場所にあります。 bash-4.2.39には1つのソースしかありません。 「4.2.39」は、私がアップストリームバージョン番号と呼ぶものです。

ただし、ソースは(システムアーキテクチャを超えて)さまざまな方法でコンパイルできます。もちろん、これはbashの場合です。これは、ソースソースに含まれていないコンテンツ(構成など)を含めることができるダウンストリームパッケージャによって決定されます。この時点で、Ubuntu用にパッケージ化されたbash 4.2.39とFedora用にパッケージ化されたbash 4.2.39の間にはかなりの違いがあるかもしれません(同じ配布バージョン間の違いも同じです)。これはほとんどの場合、バージョン文字列の最後の部分「ubuntu8.12」などで表されます。また、Ubuntu 10と12で利用可能なbash 4.2.39がある場合でも、パッケージに必要な他のパッケージ(共有ライブラリ)と一致するため、パッケージがコンパイルされた展開と展開のバージョンは正確に重要です。交換可能。

「-42」のようなものは、ディストリビューションのいくつかの追加バージョンのダウンストリームを表します。これは、構成の違い、ディストリビューションのパッチなどに関連する可能性があります。この場合、同じ「-42」バージョンをディストリビューション(およびその派生)の異なるバージョンの複数のリポジトリで使用できます。

これは、次を表す一意のバージョン文字列に追加されます。ソースソースバージョン、これパッケージバージョン、しかも特定のリリース+リリースバージョン

関連情報