Here's an example:

~$ ls /lib/*.so* | head -n 10

What do the numbers after so, such as in the last line, 1.1.0 mean?

My first guess was that they are version numbers, but:

~$ pacman -Qo /lib/libattr.so*
/lib/libattr.so is owned by attr 2.4.46-1
/lib/libattr.so.1 is owned by attr 2.4.46-1
/lib/libattr.so.1.1.0 is owned by attr 2.4.46-1

So the 1.1.0 does not seem to have any connection to the version of the library, reported to be 2.4.46.


They are different versions of the libraries. Different applications might need different versions so each file includes the version name, that way they can all be installed at the same time. You'll find that the ones without version numbers actually point to one of the ones that has a version number via a symlink, so that applications that don't need specific versions can simply request the library that has no version number and get the latest version installed on the system.

  • That was my first guess, but from what my package manager tells me, it doesn't seem to be the answer. See edit of question. – houbysoft Jun 18 '11 at 20:33
  • 5
    The version numbers of the files will probably only be increased when they break binary compatability, I.e. they have a different API for programs to use. This will not change with bugfixes, which would still cause the package version to be incremented. Because of this, package versions increase faster than the library API versions. That's my guess on the matter, anyways. – Darth Android Jun 18 '11 at 20:39
  • Indeed, the the package version numbers are completely independent from the libarary version. You can have increased package version numbers which keeps the library version the same because it retains its binary compatibility.... – Kurt Pfeifle Jun 18 '11 at 21:52

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service, privacy policy and cookie policy

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