jpegdecodeimage-compressionlibjpeglibjpeg-turbo

What's the difference between libjpeg.so.8 and libjpeg.so.62


There are always jpeg decoder libraries pre-installed on Linux like:

/usr/lib/x86_64-linux-gnu/libjpeg.so
/usr/lib/x86_64-linux-gnu/libjpeg.so.62
/usr/lib/x86_64-linux-gnu/libjpeg.so.62.0.0
/usr/lib/x86_64-linux-gnu/libjpeg.so.8
/usr/lib/x86_64-linux-gnu/libjpeg.so.8.0.2

What is the difference between the so library? Does libjpeg.so.62 build from libjpeg-turbo?


Solution

  • Firstly, if you run:

    ls -l /usr/lib/x86_64-linux-gnu/*jpeg*
    

    you will see that most of the files are just symlinks to the one with the full version, so programs can link against the latest one by specifying an unversioned library in the knowledge that it will point to the latest version:

    lrwxrwxrwx 1 root root     17 Oct 20  2016 libjpeg.so -> libjpeg.so.62.2.0
    lrwxrwxrwx 1 root root     17 Oct 20  2016 libjpeg.so.62 -> libjpeg.so.62.2.0
    -rw-r--r-- 1 root root 436224 Oct 20  2016 libjpeg.so.62.2.0
    

    Secondly, unfortunately I don't have the same files as you else I would help further, but in general, you can find which package a given file comes from like this:

    dpkg -S someFile
    

    So, on my system, I can see that libjpeg.a for example, comes from package libjpeg62-turbo-dev

    dpkg -S libjpeg.a
    libjpeg62-turbo-dev:amd64: /usr/lib/x86_64-linux-gnu/libjpeg.a