Understanding the numbers in package names (?OT)

Michael Bienia michael at vorlon.ping.de
Tue Sep 12 18:51:29 BST 2006

On 2006-09-12 22:17:15 +0530, Shriramana Sharma wrote:
> i am totally confused about the numbers taking place in package names.
> Only one set of numbers is obviously the product version number. I
> don't understand what the others are. Here are some examples;
> 1. In libstdc++6-4.1-dev, I understand that 4.1 is the so-called
> version number. But what does 6 mean? I have seen a file called
> libstdc++.so.6 -- is this 6 and that 6 the same? What is its meaning?

Yes, both 6 are the same, it denotes the so version of the library.
It is good practice to include the so version into the package name to
let an old and a new version to be co-installable.

> 2. In mysql-common_5.0.22-0ubuntu6.06.2_all.deb, 5.0.22 is the version
> number. What is the 0 before ubuntu? 

The place of the 0 is the Debian revision of the package. If the
upstream version of a package in Ubuntu is newer than in Debian it gets
a 0 as revision as there exists no Debian package for this upstream
version yet.

> 4. In kgpg_4%3a3.5.2-0ubuntu8_i386.deb,
> dnsutils_1%253a9.3.2-2ubuntu1.1_i386.deb,
> xserver-xorg-core_1%253a1.0.2-0ubuntu10.4_i386.deb etc, some special
> characters are added and numbers placed before them. Also, the numbers
> after ubuntu here (8 and 1.1) are confusing.

The %3a is decoded a :. The complete version for kgpg is 4:3.5.2-0ubuntu8.
The 4: is called epoch. It is used when the newer version number is
lower then the previous (for whatever reason, mostly upstream). When
comparing versions first the the epoch is compared (no epoch = 0) then
the upstream version and then the revision.
The version for kgpg splited:
- epoch: 4
- upstream version: 3.5.2
- revision: 0ubuntu8
  - debian revision: 0 (no Debian package for this upstream version exists)
  - ubuntu revision: ubuntu8 (its the 8th change from ubuntu)



More information about the ubuntu-devel mailing list