On Thu, Jan 30, 2020 at 12:02 PM Andrew C Aitchison <and...@aitchison.me.uk> wrote: > > On Thu, 30 Jan 2020, Yasha Karant wrote: > > > > Calibre needs RuntimeError: Failed to load icu with error: > > /lib64/libstdc++.so.6: version `CXXABI_1.3.8' not found (required by > > /opt/calibre/lib/libicui18n.so.64) > > I'm running SL6 and Ubuntu19... so don't know the exact details for RHEL7 > but the softwarecollections repo should have a devtoolset-8-gcc package > (or more likely a set of packages) with a with suitable compiler and > runtime.
The devtoolset-X packages will not help with this problem, unless maybe you are recompiling Calibre itself. The main purpose of the devtoolsets is to let you use a newer compiler to create executables that can run on an *unmodified* RHEL7 system. Red Hat has hacked the devtoolset GCC to use rely only on the original libstdc++; i.e. the original CXXABI. This error just means the executable you have requires a newer libstdc++. The certain way to get one is to compile a newer GCC from source on RHEL7. One of the artifacts of this build will be the newer libstdc++.so that you need. Make sure the newer libstdc++.so.6 resides in your LD_LIBRARY_PATH, and your Calibre executable might run. At the very least, it will fail differently. As a short cut, you could try copying libstdc++.so.6 from a RHEL8 system and put it somewhere in your LD_LIBRARY_PATH. But that might create new missing dependencies of its own, or be incompatible with the RHEL7 dynamic linker, etc. I have not tried it because I get around this sort of issue by compiling GCC. - Pat