I am trying to build a singularity container for use in a cluster running centOS 6. Some of the packages i need are in python. The problem is that installing by pip requires glibc-2.14 and glibc-2.17. I installed those according to here and here.
Here is my definition file:
Bootstrap: docker
From: conda/miniconda3-centos6
%files
conda_env.yml
glibc-2.14
CentOS-Base.repo
glibc-2.17-55.el6.x86_64.rpm
glibc-common-2.17-55.el6.x86_64.rpm
glibc-devel-2.17-55.el6.x86_64.rpm
glibc-headers-2.17-55.el6.x86_64.rpm
glibc-static-2.17-55.el6.x86_64.rpm
glibc-utils-2.17-55.el6.x86_64.rpm
nscd-2.17-55.el6.x86_64.rpm
%post
rm /etc/yum.repos.d/CentOS-Base.repo
mv CentOS-Base.repo /etc/yum.repos.d/
yum install -y wget bzip2 gcc perl bzip2-devel gd
HOME="$PWD"
cd glibc-2.14
mkdir build
cd build
../configure --prefix=/opt/glibc-2.14
make -j8
make install
export LD_LIBRARY_PATH=/opt/glibc-2.14/lib
cd "$HOME"
rpm -Uvh glibc-2.17-55.el6.x86_64.rpm \
glibc-common-2.17-55.el6.x86_64.rpm \
glibc-devel-2.17-55.el6.x86_64.rpm \
glibc-headers-2.17-55.el6.x86_64.rpm \
glibc-static-2.17-55.el6.x86_64.rpm \
glibc-utils-2.17-55.el6.x86_64.rpm \
/usr/local/bin/conda env create -f conda_env.yml
glibc-2.14 installs fine, but installing glibc-2.17 proves to be difficult. The installion fails with the following errors:
warning: glibc-2.17-55.el6.x86_64.rpm: Header V3 RSA/SHA1 Signature, key ID 73ec361c: NOKEY
Preparing... ########################################### [100%]
1:glibc-common ########################################### [ 17%]
2:glibc ########################################### [ 33%]
/usr/sbin/glibc_post_upgrade: While trying to execute /usr/sbin/iconvconfig.x86_64 child terminated abnormally
warning: %post(glibc-2.17-55.el6.x86_64) scriptlet failed, exit status 115
error: %pre(glibc-headers-2.17-55.el6.x86_64) scriptlet failed, signal 11
error: install: %pre scriptlet failed (2), skipping glibc-headers-2.17-55.el6
3:glibc-devel ########################################### [ 50%]
error: %post(glibc-devel-2.17-55.el6.x86_64) scriptlet failed, signal 11
4:glibc-static ########################################### [ 67%]
5:glibc-utils ########################################### [ 83%]
FATAL: While performing build: while running engine: exit status 6
Installing glibc-2.17 the same way as 2.14 will result in a segfault when python is called. Can anybody with more experienced provide some insights into possible solutions? Or if there are containers for centOS 6 with newer glibc out there?
Thanks in advance!
The problem is that installing by pip requires glibc-2.14 and glibc-2.17.
There is no way that something requires both GLIBC-2.14 and GLIBC-2.17 -- these versions do not normally coexist on a single system.
Installing GLIBC-2.17 should satisfy all the requirements (it provides both GLIBC-2.17 and all previous version symbols).