【问题标题】:installing R gsl package on Mac在 Mac 上安装 R gsl 包
【发布时间】:2014-07-16 12:44:20
【问题描述】:

我正在尝试为 R 安装 gsl 包,据我所知,它只是 OSX Mavericks 下 GSL 的一个包装器。我已经尝试了明显的:

> 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。哦!所以我通过 Homebrew 安装 GSL:

~  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

我显然是以错误的方式解决这个问题,但不确定问题到底出在哪里。

【问题讨论】:

  • 我遇到了同样的问题。从 Homebrew 下载的 Mac OS 10.9.4、gcc 4.2.1、R 3.1.1 和 GSL 1.16。此外,文档 (gnu.org/software/gsl/manual/html_node/…) 中的示例程序可以毫无问题地编译(尽管我不知道如何运行/测试它,因为我对 C 一无所知)。
  • @RoyalTS。您似乎没有在 r-package 期望找到它的地方安装 GSL 包(不是 R-package gsl)。 (gnu.org/software/gsl)
  • @BondedDust 我已经通过自制软件安装了它,并且可以从命令行运行gsl-config 没有问题。我还尝试卸载自制版本并从头开始构建它,但无济于事。我收到相同的错误消息。包在哪里可以找到 GSL,我如何才能在安装过​​程中指向它的实际位置?
  • 我没有运行 Mavericks 或自制程序,但我在某些页面中读到您可能会在终端会话中将其与 launchctl setenv PATH "/usr/local/bin:$PATH" 一起修补。
  • 我认为这可能会奏效,尽管只有很多额外的胶带。如果您不介意,我会将整个过程放在答案中,看看它是否也适用于其他人。

标签: r macos gsl


【解决方案1】:

通过手动为 CFLAGSLDFLAGS 添加前缀,我能够使用标准 brew 安装的 R 和 gsl 使事情正常运行(OS X Yosemite 10.10、R 3.1.1、gsl 1.16、gsl R 包 1.9-10)分别来自gsl-config --cflagsgsl-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 符号链接。

【讨论】:

  • 嗨,我最初不明白你的解决方案(...,在哪里设置标志等),但最终想通了(我猜):运行gsl-config --cflags 给出(对我来说10.11) -I/usr/local/include 并运行 gsl-config --libs 会得到 -L/usr/local/lib -lgsl -lgslcblas。因此,我使用CFLAGS="-I/usr/local/include" LDFLAGS="-L/usr/local/lib -lgsl -lgslcblas" R 启动 R(从终端)。然后install.packages("gsl") 工作。认为这可能对其他人(不太精通技术)有所帮助。
  • @MariusHofert 的评论对我有用,说明稍微容易理解,但家长的回答仍然正确
【解决方案2】:

对于 Mac,只需运行:

brew install gsl

然后在r中安装包

【讨论】:

  • 快速简单;最佳答案!
【解决方案3】:

虽然我不确定以下哪些部分是绝对必要的,但我终于让它工作了。以下是说明的分步列表:

(括号中的步骤可能是可选的。也许整个事情都可以使用自制软件)

  1. (从http://ftp.gnu.org/gnu/gsl/下载最新版本的GSL(在撰写本文时要获取的文件是gsl-1.16.tar.gz))
  2. (打开终端窗口,解压文件cd进入目录,然后运行./configuremakemake install
  3. http://cran.r-project.org/web/packages/gsl/index.html下载源代码到R包
  4. 打开一个终端窗口并运行launchctl setenv PATH "/usr/local/bin:$PATH"
  5. 在同一个终端窗口中,通过解压刚刚下载的文件、cd进入目录然后运行R CMD build ./gsl 和@ 来构建R 包(我无法在R 中使用它) 987654330@

【讨论】:

  • 明天有机会我会试试这个。出于好奇,launchctl setenv 做了哪些 export 不做的事情?
  • @BondedDust 可能更适合回答这个问题。
  • 没有步骤 1 和 2 就无法工作。我仍然收到 configure: error: Need GSL version >= 1.12
  • 刚试过。那是负面的。我认为这是 R 包的一个错误:当你安装它时,有一堆像 checking for gsl-config... /usr/local/bin/gsl-config 这样的行,其中包括检查和结果。然而,checking if GSL version >= 1.12... checking for gcc... gcc 行似乎“跳过”了结果,所以我想知道检查是否没有正确进行,或者自 1.12 版以来 GSL 本身的某些更改导致检查失败。
  • 我现在正在通过电子邮件向 Robin Hankin 发送电子邮件,并附上指向此问题的链接。
【解决方案4】:

自我注意:在 Debian 上,修复

checking for gsl-config... no
configure: error: gsl-config not found, is GSL installed?

我需要

sudo apt-get install libgsl-dev

请注意,Debian 上的软件包名称不同于其他地方的 gsl-devel。叹息。

【讨论】:

  • 对于Ubuntu 16.04,R版本3.6.3(2020-02-29),安装libgsl-dev解​​决你指出的错误。但是在安装过程中又出现了一个错误:configure: error: Need GSL version >= 1.16ERROR: configuration failed for package ‘gsl’
【解决方案5】:

我相信其他人会发现您的步骤很成功,并且我认为他们确实需要按此顺序完成。在将自制默认目录添加到路径后,确实需要从源代码构建 gsl。如果您使用了二进制文件,它是在 CRAN 机器上构建的,该机器能够在预期的直接目录中找到(外部)GSL 包(这不是 homebreww 安装的默认设置。您可能已经使用 `install.packages(' gsl_1.9-10.tar.gz', repo=NULL, type="source") 如果源包在您的工作目录中(或添加完整路径/名称作为第一个参数。)就像使用终端一样,如果单击并按住将文件拖动到 R 控制台,您将获得完整路径/名称的文本条目。

【讨论】:

    【解决方案6】:

    gsl-config 包含在 gsl-devel 软件包中,请尝试安装它。之后它应该可以工作了

    【讨论】:

      【解决方案7】:

      至少在 OS X Mavericks 上,通过 brew install gsl 安装 gsl 后,gsl-config --prefix 生成 /usr/local/Cellar/gsl/1.16。但是,许多应用程序/库(例如 Common Lisp 的 gsll)(在我的情况下)期望 /usr/local/Cellar/gsl/1.16/lib 代替。就我而言,超级懒惰(长期不可接受)的解决方案只是将库从 /usr/local/Cellar/gsl/1.16/lib 符号链接到 /usr/local/Cellar/gsl/1.16 ,一切都很好。希望这会有所帮助。

      【讨论】:

        猜你喜欢
        • 2022-10-07
        • 1970-01-01
        • 2023-01-02
        • 2021-04-14
        • 2013-03-20
        • 2018-07-03
        • 1970-01-01
        • 1970-01-01
        • 2012-02-14
        相关资源
        最近更新 更多