私は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
ですが、理解できない方法ですべて「めちゃくちゃ」になっています。つまり、パッケージごとにまったく異なる命名仕様を使用しています。
主な質問は次のとおりです。
ubuntu
が含まれているのに、含まれていないのはなぜですか?-~+
はどういう意味ですか?alpha
、build
、dfsg
とは何ですか?気軽に使えますか?vim
および他のパッケージには2:
があります。どういう意味ですか?誰か私にこれを説明してもらえますか?または公式ドキュメントはどこにありますか?
前もって感謝します。
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つのステップ(最初の数字以外の文字列と最初の数字文字列の比較と削除)は、違いが見つかるか、両方の文字列がなくなるまで繰り返されます。
エポックの目的は、バージョン番号付けの間違いを残し、バージョン番号付けスキームが変更される状況に対処できるようにすることです。パッケージ管理システムが解釈できない文字列(
ALPHA
やpre-
など)を含むバージョン番号や、ばかげた順序付けに対処することは意図されていません。
ubuntu
は、パッケージがUbuntu用にビルドされていることを示します。 alpha
およびbuild
文字列は特に意味があるようには見えませんが、dfsg
は、準拠のために 変更 になっているパッケージを指します Debianフリーソフトウェアガイドライン 。
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
エポックが実際に表すもの