简体   繁体   中英

Installing R gsl package on Ubuntu

I am failing to install the R package gsl on my ubuntu 18.04 LTS, and I don't understand what the problem is.

From within R:

> install.packages('gsl')
* installing *source* package ‘gsl’ ...
** package ‘gsl’ successfully unpacked and MD5 sums checked
** using staged installation
checking for gsl-config... /usr/bin/gsl-config
checking if GSL version >= 2.1... checking for gcc... gcc
checking whether the C compiler works... yes
checking for C compiler default output file name... a.out
checking for suffix of executables... 
checking whether we are cross compiling... no
checking for suffix of object files... o
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
configure: error: Need GSL version >= 1.16
ERROR: configuration failed for package ‘gsl’
* removing ‘/home/luca_ph/R/lib/R/library/gsl’

It sais it needs gsl version >= 1.16, however I have it installed:

dpkg -s libgsl-dev | grep Version
Version: 2.4+dfsg-6

Also, gsl-config is available in the $PATH (as suggested here .

I tried to pass the appropiate compiler arguments to R when calling it (as suggested here ), however it fails all the same:

> gsl-config --libs
-L/usr/lib/x86_64-linux-gnu -lgsl -lgslcblas -lm
> gsl-config --cflags
-I/usr/include
> CFLAGS="-I/usr/include" LDFLAGS="-L/usr/lib/x86_64-linux-gnu -lgsl -lgslcblas -lm" R
> install.packages('gsl')
[...]
* installing *source* package ‘gsl’ ...
** package ‘gsl’ successfully unpacked and MD5 sums checked
** using staged installation
checking for gsl-config... /usr/bin/gsl-config
checking if GSL version >= 2.1... checking for gcc... gcc
checking whether the C compiler works... yes
checking for C compiler default output file name... a.out
checking for suffix of executables... 
checking whether we are cross compiling... no
checking for suffix of object files... o
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
configure: error: Need GSL version >= 1.16
ERROR: configuration failed for package ‘gsl’

What am I missing here?

Thanks a lot!

Despite the error message, R package gsl now requires GSL version >= 2.5 (see here ). Even though I was able to install the most recent version of GSL (2.7), I wasn't knowledgeable enough to follow the advice in the INSTALL file of the R package:

If the gsl R package builds successfully but will not load, make sure to inform your system linker/loader where to find the GSL libraries used to compile it. That step may be missed when using a manual GSL installation as opposed to one performed by a package manager.

So I opted to use the PPA repo linked to in the How to get GNU software webpage which had GSL version 2.5 available.

In short, I ran these commands to overcome the issue you describe:

sudo add-apt-repository ppa:dns/gnu
sudo apt-get update
sudo apt install libgsl-dev

Not 100% sure if this is generally applicable, but I also had to remove the previous version of GSL with the sudo apt remove command before installing the newer version.

The technical post webpages of this site follow the CC BY-SA 4.0 protocol. If you need to reprint, please indicate the site URL or the original address.Any question please contact:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM