1

Our server is running on Redhat 6.8 and having the Anaconda Python 3.6.1 installed.

We tried to do import the python module: Keras / Tensorflow and found out we need to upgrade the Glibc from 2.12 to 2.14 in order to make that works.

We are downloaded and installed the Glibc 2.14 as separate installation according to the instruction from this link How to upgrade glibc from version 2.12 to 2.14 on CentOS?

Then we tried to import the Keras module inside the Python python interpreter, it gives us the error "Segmentation fault (core dumped)" error and kicks back out to the OS command prompt. Before we installed the Glibc 2.14, it gives us an error Glibc 2.14 not found.

This is the link we followed to install the Tensorflow from the beginning. https://www.tensorflow.org/install/install_linux#InstallingAnaconda

Anyone know how to solve this issue?

Thank you!

Mapperkids Lee
  • 145
  • 1
  • 6
  • 20

1 Answers1

1

The answer you linked to is incorrect. You can install a second glibc, but you should still compile it with --prefix=/usr (and install it using DESTDIR), and you must run all programs with an explicit linker invocation, similar to what the testrun.sh script in the build root does. For a first trial, you could just run your program binary directly using testrun.sh, without even installing glibc to the destination directory.

The glibc wiki has testing instructions. These apply to running your own application with a freshly built (but not installed) glibc, too.

If you use just LD_LIBRARY_PATH, you will get random crashes because the dynamic linker and the rest of the library do not match. There are some caveats regarding the testrun.sh approach because it does not provide full isolation, but it usually gives quite decent results. However, unlike the LD_LIBRARY_PATH approach, it does not automatically extend to all subprograms launched by the process running under the other glibc.

Note that it may be easier to upgrade to Red Hat Enterprise Linux 7 in this case (which provides glibc 2.17 out of the box).

Florian Weimer
  • 32,022
  • 3
  • 48
  • 92
  • Thanks for your answer, but for our main purpose, we need to use the Tensorflow with Karea calling from our python script. We are stuck on that Glibc 2.12 and upgrade to Redhat 7 is not an option for us right now. Also, I don't want to modify/play around too many system related stuff that may break our LIVE system. Any other safer option that can do what we want? Thanks! – Mapperkids Lee Aug 01 '17 at 16:20
  • You can install the new glibc in an arbitrary path. You don't have to be root, and you can even use a separate user account if you want to be extra-conservative. – Florian Weimer Aug 01 '17 at 20:11
  • Hi Florian, I would like to try, do I have to undo what I did from that link? if yes, how? arbitrary path? means install on other folder, could you give me some details steps for install the glibc in a right way? thanks a lot. – Mapperkids Lee Aug 02 '17 at 15:12
  • I added a link to the glibc wiki with instructions. – Florian Weimer Nov 11 '17 at 13:38