Author Topic: PixInsight 1.8.5 and Centos7: CXXABI_1.3.8 not found  (Read 5925 times)

Offline peter.englmaier

  • Newcomer
  • Posts: 9
PixInsight 1.8.5 and Centos7: CXXABI_1.3.8 not found
« on: 2017 August 04 13:24:21 »
I try to install it in my Centos7 system, but I get:

[root@teide pi]# ./installer
./installer: /lib64/libstdc++.so.6: version `CXXABI_1.3.8' not found (required by ./installer)

I also tried running it with software collection 3, 4, and 6 like this:

[root@teide pi]# scl enable devtoolset-6 ./installer
./installer: /lib64/libstdc++.so.6: version `CXXABI_1.3.8' not found (required by ./installer)

How can I fix this?
Thanks for your help

Offline peter.englmaier

  • Newcomer
  • Posts: 9
Re: PixInsight 1.8.5 and Centos7: CXXABI_1.3.8 not found
« Reply #1 on: 2017 August 04 13:43:04 »
I like to add, that I do have glibc 2.17 installed and PixInsight 1.8 does install and run fine on the machine.

Offline starhopper

  • Member
  • *
  • Posts: 55
    • starhopper
Re: PixInsight 1.8.5 and Centos7: CXXABI_1.3.8 not found
« Reply #2 on: 2017 August 05 06:00:58 »
Hello,
running Linux Mint 17.3 Cinnamon 64-bit.
I cannot upgrade to 1.8.5 because of the same problem
Quote
starhopper@HP-G5439de ~/pi-install $ tar -xzf PI-linux-x64-01.08.05.1352-20170802-c.tar.gz
starhopper@HP-G5439de ~/pi-install $ su -c './installer'
Passwort:
./installer: /usr/lib/x86_64-linux-gnu/libstdc++.so.6: version `CXXABI_1.3.8' not found (required by ./installer)
Is there an easy solution?
Thomas
Thomas Jäger
https://www.starhopper.eu
12"f/3.8 & 8"f/2.9 Astrograph
SBIG STL11000M, Moravian G2 8300
Vixen Atlux Mount, Skywatcher AZ-EQ6 GT
Skywatcher Esprit 100/550

Offline slang

  • Member
  • *
  • Posts: 60
Re: PixInsight 1.8.5 and Centos7: CXXABI_1.3.8 not found
« Reply #3 on: 2017 August 07 03:12:38 »
Hey.

Ditto for here, Mint 17.3, gcc 4,8 etc., worked great with 1.8.4.

Was going to do some more investigation before reporting, as I thought it may have been my bastardised install (Linux steve-ll2 4.4.0-87-generic #110~14.04.1-Ubuntu SMP Tue Jul 18 14:51:32 UTC 2017 x86_64 x86_64 x86_64 GNU/Linux)

~/Downloads/PI-linux-x64-01.08.05.1352-20170802-c > ./installer
./installer: /usr/lib/x86_64-linux-gnu/libstdc++.so.6: version `CXXABI_1.3.8' not found (required by ./installer)

But my other, reasonably standard Mint 17.3 workstation does the same.

Running it straight from the uncompressed directory works, but there are some file permissions problems, so need to run it as root, or manually fix/etc. the perms.

Cheers -



--
Mounts: Orion Atlas 10 eq-g, Explore Scientific G11-PMC8
Scopes: GSO RC8, Astrophysics CCDT67, ES FCD100-80, TSFLAT2
Guiding: ST80/QHY OAG/QHY5L-II-M
Cameras: Canon EOS 450D (IR Mod), QHY8L, QHY163m/QHYFW2-US/Astronomik LRGBHaSiiOii

Offline slang

  • Member
  • *
  • Posts: 60
Re: PixInsight 1.8.5 and Centos7: CXXABI_1.3.8 not found
« Reply #4 on: 2017 August 07 03:20:37 »
Without going into too much detail as to the why (which I haven't researched yet....) it seems that for me

sudo apt-get install gcc-4.8 g++-4.8

actually fixed it my bastardised system where I had already installed GCC4.9.


On my other machine, reasonably standard, I needed to install GCC4.9, so

sudo add-apt-repository ppa:ubuntu-toolchain-r/test
sudo apt-get update
sudo apt-get install gcc-4.9 g++-4.9
sudo update-alternatives --install /usr/bin/gcc gcc /usr/bin/gcc-4.9 60 --slave /usr/bin/g++ g++ /usr/bin/g++-4.9

sudo apt-get install gcc-4.8 g++-4.8
sudo update-alternatives --install /usr/bin/gcc gcc /usr/bin/gcc-4.8 60 --slave /usr/bin/g++ g++ /usr/bin/g++-4.8

Is what worked.

These are significant changes depending on what you're using your system for, I would be pretty careful before replicating these steps.

Cheers -
« Last Edit: 2017 August 07 03:51:31 by slang »
--
Mounts: Orion Atlas 10 eq-g, Explore Scientific G11-PMC8
Scopes: GSO RC8, Astrophysics CCDT67, ES FCD100-80, TSFLAT2
Guiding: ST80/QHY OAG/QHY5L-II-M
Cameras: Canon EOS 450D (IR Mod), QHY8L, QHY163m/QHYFW2-US/Astronomik LRGBHaSiiOii

Offline Juan Conejero

  • PTeam Member
  • PixInsight Jedi Grand Master
  • ********
  • Posts: 7111
    • http://pixinsight.com/
Re: PixInsight 1.8.5 and Centos7: CXXABI_1.3.8 not found
« Reply #5 on: 2017 August 07 07:27:02 »
PixInsight 1.8.5 has been built with GCC 4.9.1 on Linux. Unfortunately, GCC 4.8 does not provide support for some C++ features that we use intensively in the latest versions of our development platform. Besides this, GCC 4.9 also generates somewhat faster code in our tests.

GCC 4.9 introduces a new version of the C++ standard library, namely libstdc++.so.6.0.20, which defines a new binary interface, namely CXXABI_1.3.8. Unfortunately, now-old Linux distributions, including RHEL 7.x, CentOS 7.x and Linux Mint 17 among many others, use GCC 4.8 as their system compiler and hence don't provide support for version 1.3.8 of the C++ ABI.

This problem with the installer program is actually very easy to solve. You have two main options:

- Install GCC 4.9 or newer. You can have several GCC versions installed on any Linux distribution without problems. You can install a modern GCC version using your distribution's native package manager (yum, apt-get, etc), or you can compile and build it from source (this is what I do on my development workstations with RHEL 7.2, but this option is not advisable for users without some experience in Linux administration).

- Use the libstdc++ library included in the bin/lib distribution directory. To do this, run the installer program as follows:

$ su
# cd /path/to/uncompressed/PI/distribution
# export LD_LIBRARY_PATH=./PixInsight/bin/lib
# ./installer

In this way the installer program will look for libstdc++.so.6 on the lib distribution directory, which is a symbolic link to libstdc++.so.6.0.22 on the same directory. In fact, this is exactly what the PixInsight core application does to work normally (the LD_LIBRARY_PATH variable is always set this way by the PixInsight.sh launcher script).

Now one problem remains. The PixInsightUpdater program, which is the core component of our automated update system, also requires CXXABI_1.3.8. However, the problem is that this executable is always launched by root (through SUID/SGUID bits) when the application has been installed on the standard /opt system directory. This means that PixInsightUpdater does not inherit the LD_LIBRARY_PATH variable from the core application. Instead of this, it looks for libraries on /usr/local/lib64 and /lib64, in *that* order, by means of a RUNPATH record. There are two possible solutions to this problem:

- The easy way: Create a "libstdc++.so.6" symbolic link in /usr/local/lib64, pointing to /opt/PixInsight/bin/lib/libstdc++.so.6. This should work without problems, since all system applications look for libstdc++.so.6 in /lib64. However, WARNING, by doing this you are introducing a nontrivial change in your Linux distribution. Do this at your own risk.

- The complex way: Install GCC 4.9 or newer, either with your package management system or by building it from source.

Obviously, there is a completely different solution to all of these problems: Upgrade your system to a more contemporary Linux distribution, which includes CXXABI_1.3.8 by default.

Yeah, this is Linux in its purest state :)
Juan Conejero
PixInsight Development Team
http://pixinsight.com/

Offline peter.englmaier

  • Newcomer
  • Posts: 9
Re: PixInsight 1.8.5 and Centos7: CXXABI_1.3.8 not found
« Reply #6 on: 2017 August 09 13:04:43 »
Thanks Juan, your answer solved the problem for me (Centos7):

After unpacking, I run the installer like this:
$ sudo LD_LIBRARY_PATH=./PixInsight/bin/lib ./installer

After that the new PI version starts normal and it also downloads updates. As you did mention, updates do not install properly.

To also fix this problem I installed the symbolic link:
$ sudo  ln -s /opt/PixInsight/bin/lib/libstdc++.so.6 /usr/local/lib64/

Now, the updates run normal. So far I do not see any side-effects.

Please consider to add a little SUID wrapper program which sets the LD_LIBRARY_PATH environment variable before calling the actual PixInsightUpdater program and also a shell script wrapper for the installer. Since you have already packaged all the required libraries with the application, this would make the installation more robust in the diverse linux world.

Yes, Linux comes with its own set of problems but also solutions  ;)

Offline Juan Conejero

  • PTeam Member
  • PixInsight Jedi Grand Master
  • ********
  • Posts: 7111
    • http://pixinsight.com/
Re: PixInsight 1.8.5 and Centos7: CXXABI_1.3.8 not found
« Reply #7 on: 2017 August 09 13:25:24 »
Hi Peter,

I'm glad to know my solution worked for you. Yes, I'll think on adding the wrappers you mention in future versions.

The best thing about Linux and FreeBSD is that you have full control over your system. There are problems, of course, but you can always find solutions because the system is completely transparent.
Juan Conejero
PixInsight Development Team
http://pixinsight.com/

Offline starhopper

  • Member
  • *
  • Posts: 55
    • starhopper
Re: PixInsight 1.8.5 and Centos7: CXXABI_1.3.8 not found
« Reply #8 on: 2017 August 12 10:52:24 »
Hi Peter,
I'm glad to know my solution worked for you. Yes, I'll think on adding the wrappers you mention in future versions.
The best thing about Linux and FreeBSD is that you have full control over your system. There are problems, of course, but you can always find solutions because the system is completely transparent.

Cannot do this, because I am a astronom not a linux specialist. Solved this problem with upgrading to Linux Mint 18 Sarah.
Thomas
Thomas Jäger
https://www.starhopper.eu
12"f/3.8 & 8"f/2.9 Astrograph
SBIG STL11000M, Moravian G2 8300
Vixen Atlux Mount, Skywatcher AZ-EQ6 GT
Skywatcher Esprit 100/550

Offline worcspaul

  • Newcomer
  • Posts: 2
Re: PixInsight 1.8.5 and Centos7: CXXABI_1.3.8 not found
« Reply #9 on: 2018 May 19 01:43:52 »
I've just been hitting the same problem with installing PI on CentOS 7.  Here's how I got around it (where install-dir is where I unpacked the tarball) - all commands performed as root:

cd /lib64
mv libstdc++.so.6 libstdc++.so.6.bak
cp install-dir/PixInsight/bin/lib/libstdc++.so.6.0.22 /lib64
ln -s libstdc++.so.6.0.22  libstdc++.so.6

I was then able to run the installer and apply updates