#!/usr/env bash # Copied in large part from https://gist.github.com/michaelchughes/85287f1c6f6440c060c3d86b4e7d764b#file-rewrite_python_exe_glibc_with_patchelf-sh export GLIBC_PATH=$HOME/my_libc_env export GLIBC_LD_PATH=$GLIBC_PATH/lib/x86_64-linux-gnu/ld-2.23.so if [[ ! -f $GLIBC_LD_PATH ]]; then echo "ERROR: Provided GLIBC_LD_PATH not valid" exit fi echo "OVERWRITING PYTHON EXECUTABLE:" python_exe=`which python` echo $python_exe IS_CONDA_ENV=`/usr/bin/python -c "print('$python_exe'.count('/envs/') > 0)"` echo "IS_CONDA_ENV: $IS_CONDA_ENV" if [[ $IS_CONDA_ENV -ne 'True' ]]; then echo "ERROR: Current python executable not in conda env. Will not alter to avoid problems." exit fi CONDA_ENV_LIB=`/usr/bin/python -c "print('$python_exe'.replace('/bin/python', '/lib'))"` echo "CREATING BACKUP PYTHON" python_tmp_exe=`/usr/bin/python -c "print('$python_exe'.replace('python', 'python_backup'))"` cp $python_exe $python_tmp_exe echo "$python_tmp_exe" rpath=$GLIBC_PATH/lib/x86_64-linux-gnu:$CONDA_ENV_LIB:/usr/lib64:/lib64:/lib echo "$rpath" echo "CALLING PATCHELF on 'python' binary" patchelf --set-interpreter $GLIBC_LD_PATH --set-rpath $rpath $python_exe echo "DONE! patchelf complete"