[R-SIG-Mac] problem installing rjags package
plummer at iarc.fr
plummer at iarc.fr
Sun Oct 10 14:11:46 CEST 2010
Michael,
I do have some experience of using MKL with JAGS and left quite
detailed instructions, for Linux, in the installation manual (section 1.3.5).
In addition to the problems noted by Brian there seem to be anomalies
with your MKL configuration:
- You are compiling with GNU compilers but trying to use the Intel
64-bit interface layer. This will not work.
- You are using the sequential MKL library but still linking to
libpthread, which is redundant.
As noted in the manual, on Linux I have been unable to link JAGS with
the MKL using GNU compilers, except by building a static version, which
is obviously not helpful if you want to interface to R.
To be honest, BLAS/LAPACK performance is not a bottleneck for JAGS unless
perhaps, you have a very special problem. All of this effort to link
to MKL will probably not pay off and binary packages of both JAGS and rjags
are available and which do actually work.
Martyn
Quoting Prof Brian Ripley <ripley at stats.ox.ac.uk>:
> Note your link line has no reference to -ljags. Mine is (for i386,
> x86_64 is later on in the output)
>
> g++ -arch i386 -dynamiclib -Wl,-headerpad_max_install_names -undefined
> dynamic_lookup -single_module -multiply_defined suppress
> -L/usr/local/lib -o rjags.so jags.o -L/usr/local/lib -ljags
> -F/Library/Frameworks/R.framework/.. -framework R -Wl,-framework
> -Wl,CoreFoundation
>
> with no reference to -lgsl. Also, have you perhaps excluded
> /usr/local/lib (the usual place to install JAGS) from the R library
> paths?
>
> Have you contacted the maintainer? Although not a Mac user he is very
> knowledgable, including about MKL.
>
> On Sat, 9 Oct 2010, Michael Braun wrote:
>
> > Hi!
> >
> > I am trying to install rjags on my Mac Pro running OSX 10.6.4, and R
> > 2.11.1 (which I compiled myself so I could link to the Intel MKL
> > blas, which I prefer to other options). I was successfully able to
> > install JAGS 2.1.0 through both the binary installer, and compiling
> > from source (I get the same problem either way).
> >
> > But I would like to use the rjags package. When I do
> >
> > install.packages("rjags")
> >
> >
> > I get the folliowing output:
> >
> > * installing *source* package rjags ...
> > checking for prefix by checking for jags... /usr/local/bin/jags
> > checking for g++... g++
> > checking for C++ compiler default output file name... a.out
> > checking whether the C++ compiler works... yes
> > checking whether we are cross compiling... no
> > checking for suffix of executables...
> > checking for suffix of object files... o
> > checking whether we are using the GNU C++ compiler... yes
> > checking whether g++ accepts -g... yes
> > checking how to run the C++ preprocessor... g++ -E
> > checking for grep that handles long lines and -e... /usr/bin/grep
> > checking for egrep... /usr/bin/grep -E
> > checking for ANSI C header files... yes
> > checking for sys/types.h... yes
> > checking for sys/stat.h... yes
> > checking for stdlib.h... yes
> > checking for string.h... yes
> > checking for memory.h... yes
> > checking for strings.h... yes
> > checking for inttypes.h... yes
> > checking for stdint.h... yes
> > checking for unistd.h... yes
> > checking Console.h usability... yes
> > checking Console.h presence... yes
> > checking for Console.h... yes
> > checking for gcc... gcc
> > checking whether we are using the GNU C compiler... yes
> > checking whether gcc accepts -g... yes
> > checking for gcc option to accept ISO C89... none needed
> > checking for jags_version in -ljags... yes
> > configure: creating ./config.status
> > config.status: creating src/Makevars
> > configure: creating ./config.status
> > config.status: creating src/Makevars
> > config.status: creating R/unix/zzz.R
> > ** libs
> > *** arch - x86_64
> > g++ -arch x86_64 -I/Library/Frameworks/R.framework/Resources/include
> -I/Library/Frameworks/R.framework/Resources/include/x86_64
> -I/usr/local/include/JAGS
> -I/opt/intel/Compiler/11.1/089/Frameworks/mkl/Headers
> -I/Install_Files/MKL_gfortran_interface/include/em64t/lp64 -fPIC -m64
> -msse4.2 -g -O2 -c jags.cc -o jags.o
> > g++ -arch x86_64 -dynamiclib -Wl,-headerpad_max_install_names -undefined
> dynamic_lookup -single_module -multiply_defined suppress
> -L/opt/intel/Compiler/11.1/089/Frameworks/mkl/Libraries/em64t
> -L/Users/braunm/Install_Files/MKL_gfortran_interface/lib/em64t -o rjags.so
> jags.o -lgsl -lmkl_intel_lp64 -lmkl_sequential -lmkl_core -lpthread
> -F/Library/Frameworks/R.framework/.. -framework R -Wl,-framework
> -Wl,CoreFoundation
> > installing to /Users/braunm/.R/Library/rjags/libs/x86_64
> > ** R
> > ** data
> > ** preparing package for lazy loading
> > ** help
> > *** installing help indices
> > ** building package indices ...
> > Error : .onLoad failed in loadNamespace() for 'rjags', details:
> > call: dyn.load(file, DLLpath = DLLpath, ...)
> > error: unable to load shared library
> '/Users/braunm/.R/Library/rjags/libs/x86_64/rjags.so':
> > dlopen(/Users/braunm/.R/Library/rjags/libs/x86_64/rjags.so, 10): Symbol
> not found: _JAGS_NA
> > Referenced from: /Users/braunm/.R/Library/rjags/libs/x86_64/rjags.so
> > Expected in: flat namespace
> > in /Users/braunm/.R/Library/rjags/libs/x86_64/rjags.so
> > ERROR: installing package indices failed
> > * removing /Users/braunm/.R/Library/rjags
> >
> >
> > However, when I go to look at the symbols in the jags library, I see
> >
> > braunm4: /usr/local/lib $ nm libjags.dylib |grep JAGS
> > 0000000000098650 S _JAGS_NA
> > 0000000000110338 S _JAGS_NAN
> > 0000000000110348 S _JAGS_NEGINF
> > 0000000000110340 S _JAGS_POSINF
> > 000000000000133c t __GLOBAL__I_JAGS_NA
> >
> > and when I try
> >
> > braunm4: /usr/local/lib $ nm libjags.a |grep JAGS
> > U _JAGS_NA
> > U _JAGS_NEGINF
> > U _JAGS_NA
> > U _JAGS_NA
> > 0000000000000060 S _JAGS_NA
> > 00000000000000b8 B _JAGS_NAN
> > 00000000000000c8 B _JAGS_NEGINF
> > 00000000000000c0 B _JAGS_POSINF
> > U _JAGS_NA
> > U _JAGS_NEGINF
> > U _JAGS_POSINF
> > U _JAGS_NEGINF
> > U _JAGS_POSINF
> > U _JAGS_NEGINF
> > U _JAGS_NA
> > U _JAGS_NEGINF
> > U _JAGS_NEGINF
> > U _JAGS_NA
> > U _JAGS_NEGINF
> > U _JAGS_POSINF
> >
> >
> > So the jags libraries (both static and dynamic) are in the standard place,
> and it looks like the symbols rjags.so needs are there as well. So I'm not
> sure what the rjags installer is looking for. Is there perhaps an
> environment variable that I am missing?
> >
> > Here is my sessionInfo():
> >
> >> sessionInfo()
> > R version 2.11.1 (2010-05-31)
> > x86_64-apple-darwin10.4.2
> >
> > locale:
> > [1] en_US.UTF-8/en_US.UTF-8/C/C/en_US.UTF-8/en_US.UTF-8
> >
> > attached base packages:
> > [1] stats grDevices datasets graphics utils methods base
> >
> > other attached packages:
> > [1] xtable_1.5-6 doMC_1.2.1 multicore_0.1-3 foreach_1.3.0
> codetools_0.2-2 iterators_1.0.3 coda_0.13-5 matrixcalc_1.0-1
> lattice_0.18-8 reshape_0.8.3 plyr_1.2.1
> > [12] mvtnorm_0.9-92
> >
> > loaded via a namespace (and not attached):
> > [1] grid_2.11.1 tcltk_2.11.1 tools_2.11.1
> >
> >
> > Thanks in advance for your help.
> >
> > Michael
> >
> >
> >
> >
> >
> >
> >
> >
> > -------------------------------------------
> > Michael Braun
> > Homer A. Burnell (1928) Career Development Professor,
> > and Assistant Professor of Management Science (Marketing Group)
> > MIT Sloan School of Management
> > 100 Main St.., E62-535
> > Cambridge, MA 02139
> > braunm at mit.edu
> > 617-253-3436
> >
> > _______________________________________________
> > R-SIG-Mac mailing list
> > R-SIG-Mac at stat.math.ethz.ch
> > https://stat.ethz.ch/mailman/listinfo/r-sig-mac
> >
>
> --
> Brian D. Ripley, ripley at stats.ox.ac.uk
> Professor of Applied Statistics, http://www.stats.ox.ac.uk/~ripley/
> University of Oxford, Tel: +44 1865 272861 (self)
> 1 South Parks Road, +44 1865 272866 (PA)
> Oxford OX1 3TG, UK Fax: +44 1865 272595
-----------------------------------------------------------------------
This message and its attachments are strictly confidenti...{{dropped:8}}
More information about the R-SIG-Mac
mailing list