web-dev-qa-db-ja.com

debianパッケージのバージョン規約

私はdebian/Ubuntuを使用していますが、パッケージのバージョンについて混乱します。 dpkg -lコマンドを使用すると、次のようになります。

ii  vim                                 2:7.3.429-2ubuntu2.1                Vi IMproved - enhanced vi editor
ii  vim-common                          2:7.3.429-2ubuntu2.1                Vi IMproved - Common files
ii  vim-runtime                         2:7.3.429-2ubuntu2.1                Vi IMproved - Runtime files
ii  vim-tiny                            2:7.3.429-2ubuntu2.1                Vi IMproved - enhanced vi editor - compact version
ii  virt-what                           1.11-1                              detect if we are running in a virtual machine
ii  w3m                                 0.5.3-5ubuntu1                      WWW browsable pager with excellent tables/frames support
ii  watershed                           6                                   reduce superfluous executions of idempotent command
ii  wget                                1.13.4-2ubuntu1                     retrieves files from the web
ii  whiptail                            0.52.11-2ubuntu10                   Displays user-friendly dialog boxes from Shell scripts
ii  whoopsie                            0.1.33                              Ubuntu crash database submission daemon
ii  wimlib9                             1.5.0-1~webupd8~precise             Library to extract, create, modify, and mount WIM files
ii  wimtools                            1.5.0-1~webupd8~precise             Tools to extract, create, modify, and mount WIM files
ii  wireless-tools                      30~pre9-5ubuntu2                    Tools for manipulating Linux Wireless Extensions
ii  wpasupplicant                       0.7.3-6ubuntu2.1                    client support for WPA and WPA2 (IEEE 802.11i)
ii  x11-common                          1:7.6+12ubuntu2                     X Window System (X.Org) infrastructure
ii  x11-utils                           7.6+4ubuntu0.1                      X11 utilities
ii  xauth                               1:1.0.6-1                           X authentication utility
ii  xbitmaps                            1.1.1-1                             Base X bitmaps
ii  xclip                               0.12-1                              command line interface to X selections
ii  xfonts-encodings                    1:1.0.4-1ubuntu1                    Encodings for X.Org fonts
ii  xfonts-utils                        1:7.6+1                             X Window System font utility programs
ii  xkb-data                            2.5-1ubuntu1.3                      X Keyboard Extension (XKB) configuration data
ii  xml-core                            0.13                                XML infrastructure and XML catalog file support
rc  xpdf                                3.02-21build1                       Portable Document Format (PDF) reader
ii  xterm                               271-1ubuntu2.1                      X terminal emulator
ii  xz-lzma                             5.1.1alpha+20110809-3               XZ-format compression utilities - compatibility commands
ii  xz-utils                            5.1.1alpha+20110809-3               XZ-format compression utilities
ii  zabbix-agent                        1:1.8.11-1                          network monitoring solution - agent
ii  zlib1g                              1:1.2.3.4.dfsg-3ubuntu4             compression library - runtime
ii  zlib1g-dev                          1:1.2.3.4.dfsg-3ubuntu4             compression library - development
ii  zsh                                 4.3.17-1ubuntu1                     Shell with lots of features

3番目の列はversionですが、理解できない方法ですべて「めちゃくちゃ」になっています。つまり、パッケージごとにまったく異なる命名仕様を使用しています。

主な質問は次のとおりです。

  1. 一部のバージョン番号にubuntuが含まれているのに、含まれていないのはなぜですか?
  2. すべての特別な句読点-~+はどういう意味ですか?
  3. alphabuilddfsgとは何ですか?気軽に使えますか?
  4. vimおよび他のパッケージには2:があります。どういう意味ですか?
  5. バージョンの形式が非常に異なる可能性がある場合、「バージョン比較」はどのように機能しますか?

誰か私にこれを説明してもらえますか?または公式ドキュメントはどこにありますか?

前もって感謝します。

39
cizixs

Debianポリシーマニュアル には、バージョンフィールドについての説明があり、質問の一部に回答します。

フォーマット

形式は次のとおりです。[Epoch:]upstream_version[-debian_revision]

ここに3つのコンポーネントがあります:

時代

これは単一の(一般的には小さい)符号なし整数です。省略してもかまいません。その場合はゼロと見なされます。省略した場合、upstream_versionにコロンを含めることができません。これは、パッケージの古いバージョンのバージョン番号、およびパッケージの以前のバージョン番号付けスキーマの誤りを残すために提供されています。

アップストリームバージョン

これはバージョン番号の主要部分です。通常、.debファイルが作成された元の(「上流」)パッケージのバージョン番号です(該当する場合)。通常、これは上流の作者によって指定されたものと同じ形式になります。ただし、パッケージ管理システムのフォーマットと比較スキームに適合するように再フォーマットする必要がある場合があります。

upstream_versionに関するパッケージ管理システムの比較動作を以下に説明します。バージョン番号のアップストリームバージョンの部分は必須です。

upstream_versionには、英数字[36]と、"."(フルストップ)、"+"(プラス)、"-"(ハイフン)、":"(コロン)、"~"(チルダ)の文字のみを含めることができ、数字で始まる必要があります。 debian_revisionがない場合、ハイフンは使用できません。 Epochがない場合、コロンは許可されません。

debian_revision

バージョン番号のこの部分は、アップストリームバージョンに基づくDebianパッケージのバージョンを指定します。英数字と、"."(全角ストップ)、"+"(プラス)、"~"(チルダ)の文字のみを含めることができ、upstream_versionと同じ方法で比較されます。

オプションです。upstream_versionが存在しない場合は、ハイフンが含まれていない可能性があります。この形式は、ソフトウェアの一部がDebianパッケージとして特別に作成された場合を表しています。Debianパッケージソースは常に初期のソースと同一である必要があり、したがって、リビジョンを示す必要はありません。

upstream_versionが増加するたびに、debian_revisionを1で再起動するのが通常です。

パッケージ管理システムは、文字列の最後のハイフン(存在する場合)でバージョン番号を分割して、アップストリームバージョンおよびデビアンリビジョンを決定します。 debian_revisionが存在しないことは、0-のdebian_revisionと同等です。

比較

2つのバージョン番号を比較する場合、最初にそれぞれのエポックが比較され、次にエポックが等しい場合のアップストリームバージョン、次にアップストリームバージョンの場合はdebian_revisionも同じです。エポックは数値的に比較されます。upstream_versionおよびdebian_revisionの部分は、次のアルゴリズムを使用してパッケージ管理システムによって比較されます。

文字列は左から右に比較されます。

最初に、数字以外の文字のみで構成される各文字列の最初の部分が決定されます。これら2つの部分(そのうちの1つは空である可能性があります)が字句的に比較されます。差異が見つかった場合はそれが返されます。字句比較は、ASCII値の比較であり、すべての文字がすべての非文字よりも前にソートされ、チルダが何よりも前にソートされ、パーツの最後までもソートされます。たとえば、 、次の部分は、古いものから新しいものへとソートされています:~~~~a~、空の部分、a

次に、完全に数字で構成される各文字列の残りの最初の部分が決定されます。これら2つの部分の数値が比較され、検出された差異が比較の結果として返されます。これらの目的のために、空の文字列(比較されるバージョン文字列の一方または両方の最後でのみ発生する可能性があります)はゼロとしてカウントされます。

これらの2つのステップ(最初の数字以外の文字列と最初の数字文字列の比較と削除)は、違いが見つかるか、両方の文字列がなくなるまで繰り返されます。

エポックの目的は、バージョン番号付けの間違いを残し、バージョン番号付けスキームが変更される状況に対処できるようにすることです。パッケージ管理システムが解釈できない文字列(ALPHApre-など)を含むバージョン番号や、ばかげた順序付けに対処することは意図されていません。

ubuntuは、パッケージがUbuntu用にビルドされていることを示します。 alphaおよびbuild文字列は特に意味があるようには見えませんが、dfsgは、準拠のために 変更 になっているパッケージを指します Debianフリーソフトウェアガイドライン

54
Flup

XubuntuYバージョンの一部。 1ubuntu1

  • XはDebianパッケージのバージョンです。ほとんどのUbuntuパッケージは、「上流」のディストリビューションであるDebianパッケージに基づいています。

    0、これはDebianパッケージがないことを意味します。Ubuntuにのみ存在します。

    Xは、実際のアップストリームバージョンが更新されるとリセットされます。 Binutils 2.25からBinutils 2.26。

    Debianバージョンが存在するのは、Debianがパッケージにパッチを作成する可能性があるためです。これにより、Debianシステムまたはセキュリティリリースでより効果的に機能します。

    Debian開発者はもちろん、フォークを回避するためにパッチをマージすることに熱心です。

    新しいセットパッチが作成されるたびに、この数は増加します。

  • ubuntuYはオプションです。

    存在しない場合は、Debianパッケージが直接使用されたことを意味します。

    それ以外の場合、これは、Debianが実際のアップストリームの上に適用するように、これがDebianパッチの上に適用されるY番目のUbuntuパッチであることを意味します。

    Yは、Xが増加するとリセットされます。

パッケージのソースを取得する場合:

apt-get source gdb

ubuntuとDebianによって適用されたパッチは次の場所にあります。

debian/patches/

さらに興味深いことに、bzrを使用してクローンを作成し、Ubuntuのすべてのバージョンのリストと、バージョン間の変更点を確認できます。

bzr branch ubuntu:gdb
cd gdb
bzr log | less

参照: https://askubuntu.com/questions/620533/what-is-the-meaning-of-the-xubuntuy-string-in-ubuntu-package-names

エポックが実際に表すもの

https://askubuntu.com/questions/441879/why-do-some-packages-have-extra-numbers-on-the-front-of-their-version-string