I was installing some dependency libraries using apt and I was just wondering why some debian library packages have number in their names.

For example:

  • libleveldb1 (while development package is libleveldb-dev and debug package is libleveldb-dbg)
  • librados2 (while there is no librados1, the development package is librados-dev and the debug package is librados2-dbg)

They don't seem to be version numbers because there is no version 2 for librados. I just don't understand what are all these numbers?

closed as off-topic by Jenny D, MadHatter, user62491, Ward, mdpc Mar 12 '14 at 5:22

This question appears to be off-topic. The users who voted to close gave this specific reason:

  • "Questions must be relevant to professional system administration. Server Fault is dedicated to professional system and network administrators. End user and enthusiast questions are off-topic (contact your system administrator or hire a professional to help you out). Please see the Help Center for more information." – Jenny D, MadHatter, Community, Ward, mdpc
If this question can be reworded to fit the rules in the help center, please edit the question.


Usually, package version is more or less related to the underlying library version AND/OR library ABI. So some careful releaser will prefix their package with the major version number of the library, so as one day, somebody can install libleveldb1 and libleveldb2 alongside on the same server (and have program that use any of the two version without issue).

-dev and -dbg packages are also usually used by developers who know what they do, so removing the extra version name at the end of the package is ok. At least, until there is a version 2 of liblevel which will then call for a libleveldb1-dbg and libleveldb1-dev packages.

The librados has existed in version 1 and version 2 is now the usual version, see the changelog at http://metadata.ftp-master.debian.org/changelogs//main/c/ceph/ceph_0.72.2-2_changelog for more information:

Rename librados1{,-dbg,-dev} packages to librados2{,-dbg,-dev} ones; conflict with and replace the former ones.

So as a conclusion, these versions are convenience numbers that usually follow the underlying library version number, but now always.

  • 1
    Actually, these numbers should never map to the actual version of the library. If they do, it's (sadly) often the case the library developer had no clue what to do here. A good explanation can be found in the Autotools Mythbuster: flameeyes.eu/autotools-mythbuster/libtool/version.html – zhenech Mar 10 '14 at 21:25
  • I think @zhenech is right. librados have never had a version 2 or even 1! It seems that this number is just a debian specific revision number. – Ali Mar 11 '14 at 9:02
  • @Ali it's not Debian specific, it's the SONAME/ABI-version of the library, which Debian includes in the package name. – zhenech Mar 11 '14 at 9:30

Not the answer you're looking for? Browse other questions tagged or ask your own question.