Installing topicmodels - "fatal error: 'gsl/gsl_rng.h'"
: R, topicmodels
I recently tried to install the topicmodels R package (v0.2-3) on my Mac that was running OS X Yosemite (v10.10.4 - 14E46) with Xcode (v6.4 - 6E35b). My R (v3.2.2) was installed using homebrew.
I ran the following command in my R console:
install.packages("topicmodels")
Only to be met with the following errors:
ctm.c:29:10: fatal error: 'gsl/gsl_rng.h' file not found
#include <gsl/gsl_rng.h>
^
1 error generated.
make: *** [ctm.o] Error 1
fatal error: 'gsl/gsl_rng.h'
The topicmodels R package actually depends on the GNU scientific library (GSL). You can get this using homebrew:
brew install gsl
At the time of this writing, this version was stable 1.16 (bottled). But even after installing this, I still got the same error. After taking a closer look, at the include statements:
-I/usr/local/opt/gettext/include -I/usr/local/opt/readline/include -I/usr/local/opt/openssl/include
I noticed this wasn’t actually including the gsl headers located at /usr/local/opt/gsl/include
. A post about this exact same problem was made on stackoverflow. The solution was to include the following in ~/.R/Makevars
:
PKG_LIBS=-L/usr/local/opt/gettext/lib
CFLAGS=-I/usr/local/opt/gsl/include
LDFLAGS=-L/usr/local/opt/gsl/lib -lgsl -lgslcblas
More details on what a Makevars file is can be found here:
makevars is a make file that overrides the default make file generated by R (which is located at file.path(R.home("etc"), "Makeconf"))
Hadley Wickham in R packages
How this helps you if you run into the same problem!
For Centos Users
For those on Centos, you install gsl (if you have admin):
yum install gsl-devel
This will install the headers, by default into /usr/include/gsl
.