On Wed, 2014-03-12 at 18:30 +1300, Rolf Turner wrote: > Can't hazard a guess as to why R is tacking on those other components to > LD_LIBRARY_PATH but it seems that if you use Sys.setenv() from within R > you can put your personal directory first. Something like: > > Sys.setenv(LD_LIBRARY_PATH=paste("~/install/lib", > Sys.getenv("LD_LIBRARY_PATH"),sep=":")) > > You could put that line into your .Rprofile so that you wouldn't need to > enter it on each startup. > > HTH > > cheers, > > Rolf Turner
That helps some; lsof now indicates the R has both the versions in /usr/lib/openmpi and ~/install of libmpi.so, libopen-pal.so, and libopen-rte.so. Does anyone know how to tell which version it actually is using? The libraries are different versions. The library that it is picking up isn't on LD_LIBRARY_PATH, and so I think something else is going on. Specifically, if I library("Rmpi") and do lsof on the process I see (among other things) R 17538 ross txt REG 8,1 5648 3058294 /usr/lib/R/bin/exec/R R 17538 ross mem REG 8,1 335240 3105336 /usr/lib/openmpi/lib/libopen-pal.so.0.0.0 R 17538 ross mem REG 8,1 304576 3105337 /usr/lib/openmpi/lib/libopen-rte.so.0.0.0 R 17538 ross mem REG 8,1 679992 3105332 /usr/lib/openmpi/lib/libmpi.so.0.0.2 R 17538 ross mem REG 254,2 2802579 152045867 /home/ross/install/lib/libmpi.so.1.3.0 R 17538 ross mem REG 254,2 106626 152046481 /home/ross/Rlib-3.0.1/Rmpi/libs/Rmpi.so BTW, ldd on the rmpi.so above gives (among other things) libmpi.so.1 => /home/ross/install/lib/libmpi.so.1 (0x00007ff609d68000) and neither it nor ldd libmpi.so (my personal version) have references to /usr/lib/openmpi. Rmpi.so does reference some of the libraries in /usr/lib/openmpi. ldd mentions libopen-rte.so.7 => /home/ross/install/lib/libopen-rte.so.7 (0x00007ff608d07000) but not libopen-pal I believe the paths indicated by ldd are simply hints to the dynamic loader about where to look. BTW, Rmpi was installed with R CMD INSTALL Rmpi --configure-args='--with-Rmpi-include=/home/ross/install/include --with-Rmpi-libpath=/home/ross/install/lib --with-mpi=/home/ross/install --with-Rmpi-type=OPENMPI' Maybe the --with-mpi path needs a /lib. Ross > > > On 12/03/14 16:00, Ross Boylan wrote: > > > I am trying to ensure that a directory is searched first, but it gets > > stuck at the end of LD_LIBRARY_PATH: > > > > $ export LD_LIBRARY_PATH=~/install/lib > > > > $ R > > > > R version 3.0.2 (2013-09-25) -- "Frisbee Sailing" > > Copyright (C) 2013 The R Foundation for Statistical Computing > > Platform: x86_64-pc-linux-gnu (64-bit) > > # banner omitted > > > >> Sys.getenv(c("PATH", "LD_LIBRARY_PATH")) > > > > PATH > > > > "/usr/local/bin:/usr/bin:/bin:/usr/local/games:/usr/games" > > > > LD_LIBRARY_PATH > > "/usr/lib64/R/lib:/usr/lib/jvm/java-6-openjdk/jre/lib/amd64/server:/home/ross/install/lib" > >> > > > > > > I've seen some reference to $R_HOME/etc/ldpaths but I don't have access > > to system files, and I definitely don't want this visible to other > > users. > > > > I ran into this under Open MPI, but the previous example didn't use MPI > > at all. > > > > I'm picking up the wrong libraries; what do I need to do so that my > > personal library is searched first? > > > > > > Running Debian squeeze. > ______________________________________________ R-help@r-project.org mailing list https://stat.ethz.ch/mailman/listinfo/r-help PLEASE do read the posting guide http://www.R-project.org/posting-guide.html and provide commented, minimal, self-contained, reproducible code.