SQLyog Job Agent (SJA) » SJA for LINUX

ID #1177

Failed dependency for libstdc++.so.5 error


This error occurs because a C++ shared library that SJA requires is not available.

When writing applications supposed to run on more different Linux versions there are various ways to handle this. The solution that we use in SJA is to link against older versions, so that SJA will run on any Linux version from when this C/C++ version was first introduced and up. Since version 8.13 we link 'dynamically' what means that the C++ shared library code that SJA needs is not compiled into SJA itself. SJA will need to find the code on the system where it runs. The shared library file is "libstdc++.so.5" what is part of the GCC 3.2 runtime (introduced with RedHat 9 and other Linux distributions released at about the same time).

With very recent Linux distributions (based on GCC 4.x runtimes) you may not have this shared library installed.  With some distro's it is an optional install.  To install just use whatever package manager system is available with your distribution.  For instance:


* On Red Hat Enterprise and Fedora, the command to install the compatibility package is: "yum install compat-libstdc++-33"
* On Ubuntu the command to install the compatibility package is: "sudo apt-get install libstdc++5"
* On SuSE you may use the Yast 'Software Management' GUI and find the package by searching with 'libstdc'. The packet required is named "compat-libstdc++" (and the RPM file is named compat-libstdc++-5.0.7-121.1.i586.rpm on 32 bit systems). To install from a console on SuSE do (as root) "yast -i compat-libstdc++"

Before version 8.13 SJA the 'libstdc++.so.5' library was linked statically (ie: SJA itself included the code).  But as Linux now has been available for production use for around 10 years it is not possible anymore to link statically and ensure that it will work with all - old as well as recent - distro's available. Specifically we changed this with 8.13 because before SJA would sometimes fail with very recent distributions (Ubuntu was affected).

Also note that SJA is available as a 32 bit binary only.  There is no need for providing a 64 bit binary as SJA will never use more memory than what can be addressed by a 32 bit binary.  However as a consequence you will have to have 32-bit compability installed.  This is not a problem with pre-compiled and pre-packaged distributions - only if you build the OS yourself or if you use a installation method with very selective installation options (like some network installation methods available) 32 bit compability packages must be included.

Should you for some reason need a SJA compiled on or for some specific distro or should you need a 64 bit binary please contact us. We will try if there is a good reason!


Tags: -

Related entries:

Last update: 2009-08-13 11:22
Author: Peter Laursen
Revision: 1.0

Digg it! Print this record Send FAQ to a friend Show this as PDF file
Propose a translation for Propose a translation for
Please rate this FAQ:

Average rating: 1 out of 5 (1 Votes )

completely useless 1 2 3 4 5 most valuable

You can comment this FAQ