【问题标题】:OS X package installation depends on gfortran-4.8OS X 包安装依赖 gfortran-4.8
【发布时间】:2014-07-17 22:45:25
【问题描述】:

我正在使用 R 的 OS X 开发版

R Under development (unstable) (2014-05-27 r65787)
Platform: x86_64-apple-darwin13.1.0 (64-bit)

使用 GNU Fortran (GCC) 4.2.3(来自 Simon's site)和 Xcode 命令行工具的 5.1.1 版。

从源代码构建时,我收到如下错误:

gfortran-4.8   -fPIC  -g -O2  -c altmov.f -o altmov.o
make: gfortran-4.8: No such file or directory

我不确定在这里做什么。我可以为我拥有的版本创建一个别名,但我不确定它是否真的需要 4.8。

谢谢,

最大

【问题讨论】:

  • 你真的需要 R 开发版吗?
  • 是的。 CRAN 维护人员几乎总是要求您使用最新的开发版本进行构建和检查。
  • 您可以使用winbuilder服务。见cran.r-project.org/web/packages/policies.html。我使用它并且它有效。
  • 查看 r.research.att.com/libs 并查找 gfortran-4.8.2。按照页面末尾的说明进行安装。看看这个 R-SIG-Mac 邮件列表线程:stat.ethz.ch/pipermail/r-sig-mac/2014-May/010894.html。如果您有 Intel Core 2 Duo,则此版本的 gfortran 将无法正常工作。
  • 感谢您的回复。我打开包装,它开始正常(使用gfortran-4.8 --version 测试)但现在收到错误f951: internal compiler error: Abort trap: 6

标签: r fortran


【解决方案1】:

在终端输入这两行,直接引用:

curl -O http://r.research.att.com/libs/gfortran-4.8.2-darwin13.tar.bz2
sudo tar fvxj gfortran-4.8.2-darwin13.tar.bz2 -C /

它将为您下载 Mavericks 的 gfortran(目前您的系统中缺少该文件)并将其安装到您的系统中。至少,这为我解决了同样的问题

(我正在运行 2011 年末的 MacPro,小牛队)。

【讨论】:

  • 在此之后安装 igraph 时我仍然缺少 gfortran-4.8。似乎虽然/usr/local/bin 在 R 会话中的 PATH 中,但编译过程忽略了这一点,找不到 gfortran-4.8。
  • 这对我来说也很完美。这不是 Rstudio 问题,因为我从控制台安装包源时遇到错误。干杯
  • 很好的答案。 google+stackoverflow = 30 秒内解决问题
  • 为我解决了问题(优胜美地)
  • 是的,这会导致 Homebrew 出现问题;这是安装 gfortran 的一种不优雅的方式,并且会与 Homebrew 的 gcc 公式发生冲突。
【解决方案2】:

编辑:我现在认为最好使用 Homebrew 来完成:

brew reinstall gcc48 --with-fortran

虽然我认为下面的过程会起作用,但它并不那么干净。但是,我仍然建议配置 ~/.R/Makevars,如下所述。

以@TheBigMike 的回答为基础,我使用以下过程将 gfortran-4.8 与 homebrew 一起安装,然后配置 R 以选择此 fortran 编译器。

首先,下载并解压gfortran 4.8:

su admin
curl -O http://r.research.att.com/libs/gfortran-4.8.2-darwin13.tar.bz2
mkdir /tmp/gfortran
tar fvxz gfortran-4.8.2-darwin13.tar.bz2 -C /tmp/gfortran

删除干扰自制程序的gfortran文件别名:

rm /tmp/gfortran/usr/local/bin/gfortran

安装 gfortran 4.8

cp -r /tmp/gfortran/usr/local/ /usr/local

要告诉 R 使用 gfortran 4.8,请创建一个名为 ~/.R/Makevars 的文件:

mkdir -p ~/.R
touch ~/.R/Makevars

将以下内容放入~/.R/Makevars

FLIBS=""
F77="gfortran-4.8"
FC="gfortran-4.8"

现在重新启动 R。一旦 R 重新启动,任何依赖于 fortran 4.8 的包现在都应该可以工作了。自制软件应该不受干扰。

【讨论】:

  • 感谢您的出色回答。我厌倦了brew reinstall gcc48 --with-fortran,但仍然出现错误:ld: library not found for -lgfortran。但是,当我按照以下步骤操作时,它可以工作! brew 然后抱怨:Warning: Unbrewed dylibs were found in /usr/local/lib. 我应该担心吗?
  • 啊哈!如果我将FLIBS = "" 添加到我的~/.R/Makevars,则brew reinstall gcc48 --with-fortran 方法有效。
  • tar 命令之后出现“tar: Error opening archive: Unrecognized archive format”,但我能够通过在 curl:curl -0L 中使用 -L 标志来解决它跨度>
【解决方案3】:

我遇到了同样的问题,尽管是在 R Studio 上。 以下对我有用,尽管,我不得不重新安装我所有的 R 包(注意:重新安装需要一段时间,看起来有很多事情正在进行,不确定这些是否是适当的步骤,使用风险自负):

下载最新的 R Studio 版本,然后在终端中执行以下操作: brew install gcc brew update && brew reinstall r brew link --overwrite r

【讨论】:

  • 该问题专门询问R开发者版本。对我投反对票。
【解决方案4】:

这在Rcpp FAQ,第 2.16 节中有很好的解释。基本上您需要安装 gfortran(homebrew install gcc 或其他方式),然后修改 Makeconf 以将 FLIBS 指向相关的 fortran 库。

这些是对我有用的步骤:

  1. 通过自制软件安装 gcc48

  2. 确保 gfortran 和 gfortran-4.8 指向新安装的版本。

  3. 注释/Library/Frameworks/R.framework/Resources/etc/Makeconf 中的FLIBS 变量。

第 3 步是最重要的一步,因为它旨在与按照@TheBigMike 建议的方式安装的 gfortran 一起使用,即通过下载和解压缩存档 gfortran-4.8.2-darwin13.tar.bz2

【讨论】:

  • 抱歉,错过了最后一部分。
【解决方案5】:

以下内容在 OSX High Sierra 和 RStudio 1.1.423 上对我有用:

  1. 通过 Homebrew 安装 gcc/gfortran:brew install gcc
  2. 编辑/Library/Frameworks/R.framework/Resources/etc/Makeconf 并将gfortran-4.8 的所有实例替换为gfortran
  3. 还将FLIBS = -L/usr/local/lib/gcc/x86_64-apple-darwin13.0.0/4.8.2 替换为FLIBS = -L/usr/local/lib/gcc/7/ -lgfortran -lquadmath -lm
  4. 重新尝试安装软件包。

【讨论】:

  • 这对我来说可以消除 fortran 错误,但由于我尝试过的所有其他(不同)原因导致编译失败。 MacOS High Sierra,R 版本 3.3.3
  • 它对我有用。通过 Homebrew 的 Gcc 已经安装在我的笔记本电脑上(所以我跳过了第 1 步),缺少的是 Makeconf 文件中的正确配置。
【解决方案6】:
  1. 通过 Homebrew 安装 gcc/gfortran:brew install gcc
  2. 确保您不会自动替换它:/Library/Frameworks/R.framework/Resources/etc/Makeconf 并用 gfortran 替换所有 gfortran-4.8(或任何数量)实例
  3. FLIBS = -L/usr/local/gfortran/lib/gcc/x86_64-apple-darwin15/6.1.0 -L/usr/local/gfortran/lib -lgfortran -lquadmath -lm 替换为 FLIBS = -L/usr/local/lib/gcc/7/ -lgfortran -lquadmath -lm
  4. 为我重新安装包是 robustbase,这是 fpc 库所需的

【讨论】:

    【解决方案7】:

    遇到了同样的问题,在 R cran 站点 (https://cran.ism.ac.jp/) 中找到了一条声明 在最新的 OSX(例如 High Sierra)中,一些必要的库未包含在内,必须安装这些库。该页面友好地解释了这一点,引用了

    重要提示:此版本使用 Clang 6.0.0 和 GNU Fortran 6.1,两者都没有 其中由 Apple 提供。如果你想从 源,您将需要下载并安装这些工具 - 请参阅 tools目录。

    我通过应用以下两个包解决了问题(缺少 gfortran 等),here.

    1. clang-6.0.0.pkg(OS X 10.11+,签名,64 位) MD5 哈希:c29700c4e7b2914073ef7e741eb105bc (约 418Mb)
    2. gfortran-6.1.pkg(OS X 10.11+,签名,64 位) MD5 哈希:201026216e8b373d9cd2efc0cc474bb8 (约 73Mb)

    【讨论】:

      【解决方案8】:

      RStudio 的更新版本(版本 0.98.1091)似乎解决了这个问题。

      【讨论】:

      • 这应该作为评论而不是作为答案发布。或者请在列表中提供来源(发布说明,其中说明了错误等)
      • 我在 0.99 时遇到了这个错误,所以这似乎没有得到修复(除非他们恢复了修复)。
      【解决方案9】:

      确保 R 已更新到 >= 4.0 版本(对于以前的版本,这可能会有所帮助:https://cran.ism.ac.jp/bin/macosx/tools/

      下载并安装此处找到的 GNU fortran 编译器:https://mac.r-project.org/tools/

      确保将 /usr/local/gfortran/bin 添加到 PATH 以使用此编译器。这可以做到,例如由

      export PATH=$PATH:/usr/local/gfortran/bin
      

      【讨论】:

        【解决方案10】:

        This answer by thebigmike 建议:

        在终端输入这两行,直接引用:

        curl -O http://r.research.att.com/libs/gfortran-4.8.2-darwin13.tar.bz2
        sudo tar fvxj gfortran-4.8.2-darwin13.tar.bz2 -C /
        

        但是

        curl -OL http://r.research.att.com/libs/gfortran-4.8.2-darwin13.tar.bz2
        

        帮我解决问题!

        【讨论】:

        【解决方案11】:

        通过homebrew安装gcc给我gfortran

        brew install gcc
        

        然后:

        $which gfortran
        /usr/local/bin/gfortran
        

        【讨论】:

          猜你喜欢
          • 1970-01-01
          • 2015-10-21
          • 2012-02-23
          • 2012-03-01
          • 2015-05-23
          • 2014-06-24
          • 1970-01-01
          • 2017-06-28
          • 2014-01-08
          相关资源
          最近更新 更多