Ubuntu package version naming explanation
If you are using Ubuntu you have seen that many packages include in the version the name ubuntu… some packages don’t include ubuntu at all in the package version. Here you can find a short explanation on how you can interpret the meaning of the package version of the Ubuntu packages and to find the correspondence with the Debian packages.
Basically each package will be in the form: “package-XubuntuY“.
Let’s break this apart and see what each part means:
- package = this is the name of the program/library.
- X = this is the debian version of the package
- if X=0 this means that there is no debian package (or that the ubuntu team has forked a debian package to a newer version than the one found in the debian repositories)
ex: bzip2-1.0.3-0ubuntu2
(as shown in this example the debian package might be updated in the meantime and the ubuntu package will probably merged with it on the next version) - ubuntuY = this is the Yth ubuntu version of the debian package.
- if this is missing this mean that it is a clean, unchanged debian package
ex: gzip-1.3.5-12
(in this sample, this is the original debian package included in ubuntu)
- if this is present it means that Ubuntu has taken the debian package and released it with some additional patches or bug fixes.
ex: sudo-1.6.8p12-1ubuntu6
(in this sample this is the 6th version of the ubuntu package based on the debian version 1.6.8p12-1 of sudo).
As a conclusion, the version of a package can be:
2.6.0-1 - means that this is the 1st debian package of version 2.6.0. No ubuntu changes were included.
2.6.0-1ubuntu1 - means that this is the 1st ubuntu package based on the debian package version 2.6.0-1
2.6.0-0ubuntu1 - means that there was not a debian package yet and this is the 1st ubuntu version of package 2.6.0
Share This








9th February 2007, 23:45
Very useful, thanks.
12th May 2007, 10:10
[...] 转自:http://www.ducea.com/2006/06/17/ubuntu-package-version-naming-explanation/ [...]
17th May 2007, 23:02
so maybe you know why some of the packages use colon in the version number?
like for example ffmpeg 3:0.cvs20050121-1ubuntu1
I have problem with preparing my own ffmpeg packege, because in checkinstall I can’t use colons in version number…
so I tried to give it “9999″ version number. but I still get information from upgrade system…
12th September 2007, 12:01
The part before the colon is called the epoch, and it’s used when there’s a change in the numbering scheme, so updates get properly applied.
1st January 2008, 07:23
What about the tilde (~) character? How does that get interpreted?
I ask because I just got an error from the PPA build system on Launchpad which seems odd to me (inst 0.3~svn.r90520-1 ! >= wanted 0.3)…
16th April 2008, 04:09
I think that ~ is used for versions in development. 0.3~svn…. means that this is the pre version 0.3 which was took from the svn repository. In firefox 3.0, current version is 3.0~b5+nobinonly-0ubuntu2 which is the beta 5 of firefox 3.0, but I don’t know which is the meaning of “+nobionly”
16th April 2008, 07:30
Yes, I discovered after posting the question, that ~ evaluates to less than a null string, i.e. package-1.1~svn123 < package-1.1, so that it can be used for pre-release versions, such that package-1.1 would replace package-1.1~svn123 when released. Plus + does the opposite, so that package-1.1+mychanges replaces package-1.1.
16th April 2008, 11:11
Excellent explanation. Thanks.
21st May 2008, 11:32
And what’s the logic behind 3.3 in a package name such as:
mysql-client 5.0.45-1ubuntu3.3
11th September 2008, 13:20
That’s the Ubuntu revision number. What Ubuntu has changed on top of the Debian change (which in your example is revision 1).