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


35

私は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. バージョン形式が大きく異なる場合、「バージョン比較」はどのように機能しますか?

誰も私にこれを説明できますか?または、公式文書はどこで入手できますか?

前もって感謝します。


「どうしてubuntuがあり、ないの?」とはどういう意味ですか?
Ciro Santilli新疆改造中心法轮功六四事件

1
@ CiroSantilli709大抓捕六四事件法轮功。つまり、一部のバージョン番号に単語ubuntuを含む接尾辞があり、そうでないものがあるのはなぜですか。
rakslice

回答:


50

Debianポリシーマニュアルは、これはあなたの質問の一部に答えるバージョンフィールド、について言いたいことがあります。

フォーマット

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

3つのコンポーネントは次のとおりです。

エポック

これは、単一の(通常は小さい)符号なし整数です。省略できますが、その場合はゼロが想定されます。省略すると、upstream_versionにコロンが含まれない場合があります。これは、パッケージの古いバージョンのバージョン番号の間違いや、パッケージの以前のバージョンの番号付けスキームを残しておくために提供されています。

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

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

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

upstream_versionにのみ英数字[36]と文字含んでいてもよい"."(完全な停止)、 "+"(プラス)、 "-"(ハイフン)、 ":"(コロン)、 "~"(チルダ)と数字で始まる必要があります。debian_revisionがない場合、ハイフンは許可されません。エポックがない場合、コロンは許可されません。

debian_revision

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

オプションです。存在しない場合、upstream_versionにハイフンが含まれていない可能性があります。この形式は、ソフトウェアがDebianパッケージ専用に作成された場合を表します。Debianパッケージのソースは常に元のソースと同一である必要があるため、改訂の表示は不要です。

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

パッケージ管理システムは、文字列の最後のハイフン(存在する場合)でバージョン番号を分割してupstream_versiondebian_revisionを決定します。不在debian_revisionは同等ですdebian_revision 0の。

比較

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

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

最初に、すべて数字以外の文字で構成される各文字列の最初の部分が決定されます。これらの2つの部分(1つは空の場合もあります)は、字句的に比較されます。違いが見つかった場合は、それが返されます。字句比較は、すべての文字がすべての非文字よりも早くソートされるように、またチルダが何かの前、さらにはパートの最後までソートされるように変更されたASCII値の比較です。たとえば、以下の部品が早いから、最新のソートされている:~~~~a~、空の部分、a

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

これら2つの手順(最初の非数字文字列と最初の数字文字列の比較と削除)は、違いが見つかるか、両方の文字列が使い果たされるまで繰り返されます。

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

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


1
おかげで、これは大いに役立ちます。しかし、バージョン比較はどのように機能しますか?数字、文字、〜+、どれが最初に来て、どれが最後ですか?
cizixs 14年

回答の引用を拡大して、比較の動作を説明するマニュアルのセクションを追加しました。
フラップ14年

2
これらのバージョン文字列のソート方法をテストできるオンラインツールはどこかにありますか?
ニック

同じ例を貼り付けていただけますか?たとえば、上記のバージョンの一部を個別の部分に解析します。アップストリームバージョンとdebianバージョンの両方に-と+を含めることができる場合、分離がどこにあるかをどのようにして知ることができますか?また、最初のリンクが壊れているようです。
ファーサー

@fersarr他の人には例を残しますが、リンクを修正しました。
フラップ

10

XubuntuY バージョンの一部(1ubuntu1など)

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

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

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

    Debianバージョンが存在するのは、Debianシステムまたはセキュリティリリースでより適切に動作するように、Debianがパッケージにパッチを作成する可能性があるためです。

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

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

  • ubuntuY オプションです。

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

    そうでなければ、これはDebianパッチの上に適用されるY番目のUbuntuパッチであることを意味します。これは、Debianが実際のアップストリームの上に適用するのとよく似ています。

    YX増加するとリセットされます。

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

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

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