Установка пакета 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
Я наконец получил это к работе, хотя я не уверен, какие части следующего абсолютно необходимы. Вот пошаговый список инструкций:
(шаги в скобках могут быть необязательными. Возможно, все это работает с домашним пивом)
- (загрузите последнюю версию GSL с сайта http://ftp.gnu.org/gnu/gsl/ (на момент написания этого документа файл gsl-1.16.tar.gz))
- (откройте окно терминала, распакуйте файл,
cd
в каталог, а затем запустите ./configure
, make
и make install
)
- загрузите исходные коды в пакет R с http://cran.r-project.org/web/packages/gsl/index.html
- откройте окно терминала и запустите
launchctl setenv PATH "/usr/local/bin:$PATH"
- в том же окне терминала создайте пакет 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, и все было хорошо. Надеюсь это поможет.