Closed JBlaschke closed 3 years ago
We prefer not to do any content manipulation without the user choosing it. Maybe this is best handled by adding some docs on the NERSC site.
Thanks @scanon -- that makes sense. I'll reach out to you over slack about how best to distribute the patch-rpath.py
Hi all y'all
this is something that I noticed a few months ago (@dmjacobsen and @scanon might remember a conversation or two slack), and I have iterated since:
I'm trying to find a solution to the following (related) problems:
mpi4py
installed in anaconda will not pick up the system'slibmpi.so
-- even if it depends on the same versionlibreadline.so
) are a different version than those installed by anaconda, we see warnings of version mismatches (this can fill upstderr
).The current documented solution is to build libraries "by hand" (eg https://docs.nersc.gov/development/shifter/how-to-use/#using-mpi-in-shifter). But this can be a bit tedious: if conda packages depend on
libmpi.so
, then conda will keep trying to install it. I'm not saying that this doesn't work -- it's just a bit annoying.So I want to find a way to get conda to not "override" libraries in
LD_LIBRARY_PATH
. Anaconda packages are built usingRPATH
s which has higher precedence than theLD_LIBRARY_PATH
. I wrote a wee tool that will patch allRPATH
s toRUNPATH
s here:https://github.com/JBlaschke/conda.local/blob/master/util/patch-rpath.pyI add the following to the Dockerfile:
So far, I've not found any application where this doesn't work. So is there a way to add this step to the image conversion step in shifter? Let me know what you need from me :)