Create a gist now

Instantly share code, notes, and snippets.

What would you like to do?
Installing rjags on a Mac

To install

  1. Install jags: in the terminal using homebrew brew install jags
  2. Install rjags: in R
install.packages("rjags")
library(rjags)

Potential issues

Compiler issues

If you run into a problem like:

configure: error: C++ compiler cannot create executables

It's probably because R is not finding the right compiler, therefore you need to create or modify the file ~/.R/Makevars

Setting the correct CC and CXX, in my case:

CC=clang
CXX=clang++

Do this and then retry install.packages("rjags") or devtools::install_url.

Non-default jags installation

The problem

I installed jags via homebrew. However, my homebrew is setup on my home directory (/Users/casallas/homebrew) rather than the default, /usr/local.

When I do

install.packages("rjags")

everything works fine, except that loading the library doesn't work:

library(rjags)
Error : .onLoad failed in loadNamespace() for 'rjags', details:
  call: dyn.load(file, DLLpath = DLLpath, ...)
  error: unable to load shared object '/Users/casallas/Library/R/3.0/library/rjags/libs/rjags.so':
  dlopen(/Users/casallas/Library/R/3.0/library/rjags/libs/rjags.so, 10): Library not loaded: /usr/local/lib/libjags.3.dylib
  Referenced from: /Users/casallas/Library/R/3.0/library/rjags/libs/rjags.so
  Reason: image not found
Error: package or namespace load failed for ‘rjags’

As you can see, rjags is expecting jags to be in /usr/local.

The solution

The easiest solution is to install rjags from source, using devtools::install_url with the following configure.args, as specified in rjags README:

devtools::install_url("http://sourceforge.net/projects/mcmc-jags/files/rjags/3/rjags_3-2.tar.gz",
                      args="--configure-args='--with-jags-include=/Users/casallas/homebrew/opt/jags/include/JAGS        
                                              --with-jags-lib=/Users/casallas/homebrew/opt/jags/lib'
                            "
                      )

vmivm commented Feb 13, 2016

Hi!
thank you for your writing. that is really helpful.
but i still have trouble to load rjags, i think it is installed via homebrew successfully. so now i can see it(rjags) in the package section in the right below part of Rstudio.

BUT, I have no idea why i can't load rjags.
here is the error message, When i do 'library(rjags)'


Error in get(method, envir = home) :
lazy-load database '/Library/Frameworks/R.framework/Versions/3.2/Resources/library/rjags/R/rjags.rdb' is corrupt


can you give me a hand plz?

Many thanks. :)

Ibrocas commented Feb 20, 2016

Good evening,

I installed jags from source as you suggested in the solution above but I get the following error:

Downloading package from url: http://sourceforge.net/projects/mcmc-jags/files/rjags/3/rjags_3-2.tar.gz
tar: Unrecognized archive format
tar: Error exit delayed from previous errors.
tar: Unrecognized archive format
tar: Error exit delayed from previous errors.
Error in if (!file.exists(file.path(pkg_path, "DESCRIPTION"))) { :
argument is of length zero
In addition: Warning messages:
1: In utils::untar(src, exdir = target, compressed = "gzip") :
‘/usr/bin/tar -xf '/var/folders/0b/xd0wy5jx0t1cd2tys9nktzyc0000gn/T//RtmpXIK3gv/file16e2866ff43.tar.gz' -C '/var/folders/0b/xd0wy5jx0t1cd2tys9nktzyc0000gn/T//RtmpXIK3gv/devtools16e761dfac8'’ returned error code 1
2: running command '/usr/bin/tar -tf '/var/folders/0b/xd0wy5jx0t1cd2tys9nktzyc0000gn/T//RtmpXIK3gv/file16e2866ff43.tar.gz'' had status 1
3: In min(slashes) : no non-missing arguments to min; returning Inf

I have been following all instructions. Thanks for giving me any suggestion :)

Ibrocas commented Feb 20, 2016

Problem solved: the solution involves looking for version 4 (none of the other versions worked for me) as displayed here:

devtools::install_url("http://sourceforge.net/projects/mcmc-jags/files/rjags/4/rjags_4-4.tar.gz",
args="--configure-args='--with-jags-include=/Users/casallas/homebrew/opt/jags/include/JAGS
--with-jags-lib=/Users/casallas/homebrew/opt/jags/lib'
"
)

edithelg commented Mar 2, 2017

Hi can you please help me with this??

Downloading GitHub repo rasmusab/bayesian_first_aid@master
from URL https://api.github.com/repos/rasmusab/bayesian_first_aid/zipball/master
Installing BayesianFirstAid
'/Library/Frameworks/R.framework/Resources/bin/R' --no-site-file --no-environ
--no-save --no-restore --quiet CMD INSTALL
'/private/var/folders/lj/0vlzq1w92r18dwbb2hkwygcm0000gn/T/RtmpC1O3eb/devtools109ad49ae6a91/rasmusab-bayesian_first_aid-d80c0fd'
--library='/Library/Frameworks/R.framework/Versions/3.3/Resources/library'
--install-tests

  • installing source package ‘BayesianFirstAid’ ...
    ** R
    ** inst
    ** tests
    ** preparing package for lazy loading
    Error : .onLoad failed in loadNamespace() for 'rjags', details:
    call: dyn.load(file, DLLpath = DLLpath, ...)
    error: unable to load shared object '/Library/Frameworks/R.framework/Versions/3.3/Resources/library/rjags/libs/rjags.so':
    dlopen(/Library/Frameworks/R.framework/Versions/3.3/Resources/library/rjags/libs/rjags.so, 10): Library not loaded: /usr/local/lib/libjags.4.dylib
    Referenced from: /Library/Frameworks/R.framework/Versions/3.3/Resources/library/rjags/libs/rjags.so
    Reason: image not found
    Error : package ‘rjags’ could not be loaded
    ERROR: lazy loading failed for package ‘BayesianFirstAid’
  • removing ‘/Library/Frameworks/R.framework/Versions/3.3/Resources/library/BayesianFirstAid’
    Error: Command failed (1)

luceromz commented Oct 5, 2017

Hi!

Im having this problem working with Yosemite 10.10.5

configure: error: "automatic detection of JAGS failed. Please supply the prefix for JAGS with the --with-jags-prefix option. See the README file for details."
ERROR: configuration failed for package 'rjags'

  • removing '/Library/Frameworks/R.framework/Versions/3.3/Resources/library/rjags'
  • restoring previous '/Library/Frameworks/R.framework/Versions/3.3/Resources/library/rjags'
    Installation failed: Command failed (1)
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment