Установка пакета R gsl на Mac

Я пытаюсь установить пакет gsl для R, который, как я понимаю, является просто оболочкой для GSL, под OSX Mavericks. Я попробовал очевидное:

> install.packages('gsl')
Installing package into ‘/Users/myusername/Library/R/3.1/library
(as ‘lib is unspecified)

   package ‘gsl is available as a source package but not as a binary

Warning in install.packages :
  package ‘gsl is not available (for R version 3.1.0)

Итак, я побежал

> install.packages('gsl',type = 'source')
Installing package into ‘/Users/myusername/Library/R/3.1/library
(as ‘lib is unspecified)
trying URL 'http://cran.rstudio.com/src/contrib/gsl_1.9-10.tar.gz'
Content type 'application/x-gzip' length 342803 bytes (334 Kb)
opened URL
==================================================
downloaded 334 Kb

* installing *source* package ‘gsl ...
** package ‘gsl successfully unpacked and MD5 sums checked
checking for gsl-config... no
configure: error: gsl-config not found, is GSL installed?
ERROR: configuration failed for package ‘gsl
* removing ‘/Users/myusername/Library/R/3.1/library/gsl
Warning in install.packages :
  installation of package ‘gsl had non-zero exit status

GSL не устанавливается. D'о! Поэтому я устанавливаю GSL через Homebrew:

~  brew install gsl
==> Downloading http://ftpmirror.gnu.org/gsl/gsl-1.15.tar.gz
######################################################################## 100.0%
==> ./configure --prefix=/usr/local/Cellar/gsl/1.15
==> make
==> make install
  /usr/local/Cellar/gsl/1.15: 239 files, 6.7M, built in 101 seconds

Попробуйте снова установить пакет R:

> install.packages('gsl',type = 'source')
Installing package into ‘/Users/myusername/Library/R/3.1/library
(as ‘lib is unspecified)
trying URL 'http://cran.rstudio.com/src/contrib/gsl_1.9-10.tar.gz'
Content type 'application/x-gzip' length 342803 bytes (334 Kb)
opened URL
==================================================
downloaded 334 Kb

* installing *source* package ‘gsl ...
** package ‘gsl successfully unpacked and MD5 sums checked
checking for gsl-config... /usr/local/bin/gsl-config
checking if GSL version >= 1.12... checking for gcc... gcc
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 gcc accepts -g... yes
checking for gcc option to accept ISO C89... none needed
configure: error: Need GSL version >= 1.12
ERROR: configuration failed for package ‘gsl
* removing ‘/Users/myusername/Library/R/3.1/library/gsl
Warning in install.packages :
  installation of package ‘gsl had non-zero exit status

Я, очевидно, поступаю неправильно, но не уверен, в чем именно заключается проблема.

Ответ 1

Мне удалось заставить все работать (OS X Yosemite 10.10, R 3.1.1, gsl 1.16, gsl R package 1.9-10) со стандартными brew-установленными R и gsl, вручную добавив префиксы CFLAGS и LDFLAGS с выводом из gsl-config --cflags и gsl-config --libs соответственно.

Следующее:

CFLAGS="-I/usr/local/opt/gsl/include" LDFLAGS="-L/usr/local/opt/gsl/lib -lgsl -lgslcblas" R
...
> install.packages("gsl")

работал на меня.

Обратите внимание, что gsl-config перечисляет прямой путь к моему Подвалу, пути выше являются символическими ссылками brew.

Ответ 2

Я наконец получил это к работе, хотя я не уверен, какие части следующего абсолютно необходимы. Вот пошаговый список инструкций:

(шаги в скобках могут быть необязательными. Возможно, все это работает с домашним пивом)

  1. (загрузите последнюю версию GSL с сайта http://ftp.gnu.org/gnu/gsl/ (на момент написания этого документа файл gsl-1.16.tar.gz))
  2. (откройте окно терминала, распакуйте файл, cd в каталог, а затем запустите ./configure, make и make install)
  3. загрузите исходные коды в пакет R с http://cran.r-project.org/web/packages/gsl/index.html
  4. откройте окно терминала и запустите launchctl setenv PATH "/usr/local/bin:$PATH"
  5. в том же окне терминала создайте пакет R (я не смог заставить его работать изнутри R), разархивировав только что загруженный файл, cd вставив в каталог, а затем запустив R CMD build ./gsl и R CMD INSTALL gsl_1.9-10.tar.gz

Ответ 3

Я верю, что другие найдут ваши шаги успешными, и я думаю, что они должны быть сделаны в таком порядке. Сборка gsl из исходного кода должна быть сделана после добавления в путь каталога homebrew по умолчанию. Если вы использовали бинарный файл, он был построен на машине CRAN, которая смогла найти (внешний) пакет GSL в ожидаемом каталоге (что не является значением по умолчанию для установок homebreww. Возможно, вам удалось выполнить команду "install.packages(") gsl_1.9-10.tar.gz ', repo = NULL, type = "source"), если исходный пакет находился в вашем рабочем каталоге (или добавьте полный путь/имя в качестве первого аргумента.) Как и при использовании Terminal, если вы нажмете, удержите и перетащите файл в консоль R, вы получите текстовую запись полного пути/имени.

Ответ 4

gsl-config входит в комплект gsl-devel, попробуйте установить его. После этого должно работать

Ответ 5

По крайней мере, на OS X Mavericks, после установки gsl через brew install gsl, gsl-config --prefix выдает /usr/local/Cellar/gsl/1.16. Однако многие приложения/библиотеки, такие как gsll для Common Lisp (в моем случае), ожидают вместо этого /usr/local/Cellar/gsl/1.16/lib. В моем случае, супер-ленивое (долгосрочное неприемлемое) решение состояло в том, чтобы просто вставить символические ссылки из /usr/local/Cellar/gsl/1.16/lib в /usr/local/Cellar/gsl/1.16, и все было хорошо. Надеюсь это поможет.