安装rgdal遇到问题

26

我想为"R version 3.2.3 (2015-12-10)"安装rgdal。我已经下载并安装了:

  • GDAL 1.11完整版
  • PROJ框架v4.9.2-2
  • GEOS框架v3.5.0-1

KyngChaos下载。

然后在RStudio中输入install.packages("rgdal"),但是出现了以下错误:

> .... 
> 
> configure: CC: clang configure: CXX: clang++ configure: rgdal:
> 1.1-1 checking for /usr/bin/svnversion... yes configure: svn revision: 
> 572 checking for gdal-config... 
> no no configure: error: gdal-config
> not found or not executable. ERROR: configuration failed for package
> ‘rgdal’
> * removing ‘/Library/Frameworks/R.framework/Versions/3.2/Resources/library/rgdal’
> Warning in install.packages :   installation of package ‘rgdal’ had
> non-zero exit status

> sessionInfo()
R version 3.2.3 (2015-12-10)
Platform: x86_64-apple-darwin13.4.0 (64-bit)
Running under: OS X 10.10.5 (Yosemite)

locale:
[1] de_AT.UTF-8/de_AT.UTF-8/de_AT.UTF-8/C/de_AT.UTF-8/de_AT.UTF-8

attached base packages:
[1] stats     graphics  grDevices utils     datasets  methods   base     

loaded via a namespace (and not attached):
[1] tools_3.2.3

我也在终端尝试过

R CMD INSTALL rgdal_1.1-1.tar --configure-args='--with-gdal-config=/Library/Frameworks/GDAL.framework/Programs/gdal-config
 --with-proj-include=/Library/Frameworks/PROJ.framework/Headers
 --with-proj-lib=/Library/Frameworks/PROJ.framework/unix/lib'

sudo R CMD INSTALL –configure-args=’–with-proj-include=/usr/local/lib’ rgdal_1.1-1.tar

没有运气!


1
devtools::session_info()会显示整个R+系统配置,这对于排查问题非常有帮助。我使用Homebrew进行支持库的安装,并没有遇到任何问题,但是您可以尝试将export PATH="/Library/Frameworks/GDAL.framework/Programs:$PATH"(这是使用KC框架的gdal-config路径)添加到您的配置文件中,然后重新启动R/RStudio并尝试再次安装。 - hrbrmstr
如果您在终端窗口(而不是R控制台)中键入gdal-config,它会产生错误还是打印一些东西? - Phil
@hrbrmstr,那并没有起作用。 - four-eyes
@Phil bash:gdal-config:命令未找到 - four-eyes
看起来您的 GDAL 安装出了问题。我建议您从KyngChaos下载最新版本的 GDAL Complete 1.11 并重新安装它(只重新安装该应用程序,而不是其他库文件)。 - Phil
显示剩余12条评论
4个回答

29

最终解决了。

我是这样做的! OS X 10.10.5 R 3.2.3 GDAL 1.1

  1. 这里下载并安装完整版的GDAL Framework。
  2. 在你的shell中键入以下代码,告诉你的OS X去哪里找到gdal-config文件:echo 'export PATH=/Library/Frameworks/GDAL.framework/Programs:$PATH' >> ~/.bash_profile然后执行 source ~/.bash_profile
  3. 在bash中键入 gdalinfo --version来检查GDAL是否正常工作。它应该返回类似于 GDAL 1.11.3, released 2015/09/16 的东西。
  4. 对于大多数人来说,启动R并键入install.packages("rgdal")就可以了(如果你已经完成了步骤1-3)。然而,如果还有问题,请继续进行第5步。
  5. 前往GDAL网站并下载.tar文件。
  6. 在shell中尝试输入以下代码:sudo R CMD INSTALL –configure-args=’–with-proj-include=/usr/local/lib’ rgdal_1.1-1.tar。但这仍然给了我一个错误:configure: error: proj_api.h not found in standard or given locations. ERROR: configuration failed for package ‘rgdal’
  7. 因此,您需要再次告诉它在哪里找到该文件。尝试:
R CMD INSTALL rgdal_1.1-1.tar --configure-args='--with-gdal-config=/Library/Frameworks/GDAL.framework/Programs/gdal-config
 --with-proj-include=/Library/Frameworks/PROJ.framework/Headers
 --with-proj-lib=/Library/Frameworks/PROJ.framework/unix/lib'

那应该可以工作。在 R 控制台中,尝试启动 R 并输入 library(rgdal)

注意:我使用 rgoes 时遇到了类似的问题。 这篇文章 帮助了我。 尝试:

R CMD INSTALL rgeos_0.3-15.tar --configure-args='--with-geos-config=/Library/Frameworks/GEOS.framework/unix/bin/geos-config
--with-proj-include=/Library/Frameworks/PROJ.framework/Headers
--with-proj-lib=/Library/Frameworks/PROJ.framework/unix/lib'

指向config文件。它在这里:/Library/Frameworks/GEOS.framework/unix/bin/geos-config


@Phil 谢谢,也许有人在某个时候会发现它有用 :) - four-eyes
2
谢谢。我无法让它工作。最终使用Homebrew在一行命令中安装了GDAL,然后就能够轻松安装RGDAL了。这是在OsX 10.11.3 R3.2.3上完成的。 - user2498193
非常感谢这个。有几个有用的提示。需要稍微修改一下才能正确获取rgdal文件名。但是没有成功安装rgeos R包。 - IRTFM
谢谢,它有效了!不过,我想知道为什么会出现这个问题。 - Irbin B.
@Stophface 谢谢。我明白了。不过,第一次在emacs中安装ESS时,它像魔术般运行良好,并且我能够安装和使用Rgdal,但随着时间的推移,这个问题引起了讨论。因此,我想知道这个问题的起源。也许这不是解决问题的最佳地点。 - Irbin B.
显示剩余3条评论

18

补充一下之前@Stophface的回答,可能对某些人有用:

我按照上面列出的所有步骤操作,但是在终端中安装rgdal时仍然报错configure: error: proj_api.h not found in standard or given locations。然而(不知道为什么),我使用 R.app 并基本相同的规范成功地安装了它:

> install.packages('rgdal', type = "source", configure.args=c(
     '--with-gdal-config=/Library/Frameworks/GDAL.framework/Programs/gdal-config',
     '--with-proj-include=/Library/Frameworks/PROJ.framework/Headers',
     '--with-proj-lib=/Library/Frameworks/PROJ.framework/unix/lib'))

再次感谢您的回答!


1
太棒了。KingChaos的解决方案不起作用时,这个方法对我有用。之前KingChaos总是成功的。 - IRTFM

16

我在 macOS Sierra (10.12) 上使用 R 3.4.0 时遇到了相同的错误。因此,我使用 Homebrew 安装了 gdal,然后在 R 中按照通常的方式安装了 rgdal

在终端中操作。

brew update
brew install gdal

在 R 中

install.packages("rgdal")

devtools::session_info()
Session info ----------------------------------------------------------------------------------------------------------------------------------------------
 setting  value                       
 version  R version 3.4.0 (2017-04-21)
 system   x86_64, darwin15.6.0        
 ui       RStudio (1.0.143)           
 language (EN)                        
 collate  en_AU.UTF-8                 
 tz       Australia/Melbourne         
 date     2017-04-24                  

Packages --------------------------------------------------------------------------------------------------------------------------------------------------
 package  * version date       source        
 devtools   1.12.0  2016-12-05 CRAN (R 3.4.0)
 digest     0.6.12  2017-01-27 CRAN (R 3.4.0)
 lattice    0.20-35 2017-03-25 CRAN (R 3.4.0)
 memoise    1.1.0   2017-04-21 CRAN (R 3.4.0)
 rgdal    * 1.2-6   2017-04-06 CRAN (R 3.4.0)
 sp       * 1.2-4   2016-12-22 CRAN (R 3.4.0)
 withr      1.0.2   2016-06-20 CRAN (R 3.4.0)

谢谢您的回答!我一直在手动下载文件,不确定发生了什么。我非常感激Homebrew的人们。对于其他可能有所帮助的人,我必须在终端中运行以下命令:$ brew update,然后是 $ brew install gdal。然后我在R中安装了rgdalinstall.packages( pkgs = "https://cran.r-project.org/src/contrib/rgdal_1.2-18.tar.gz", repos = NULL, type = "source") - Cristian E. Nuno
非常简单的方法。谢谢! - C. Guff

2

我在我的Mac(OS X 10.10.5)上通过conda安装了它。安装很简单。如果你是conda的新手,请查看这个http://conda.pydata.org/docs/r-with-conda.html

conda install gdal
gdalinfo --version
# GDAL 2.1.0, released 2016/04/25

R包的安装:

install.packages('rgdal', type = "source", configure.args=c(
    '--with-gdal-config=/Library/Frameworks/GDAL.framework/Programs/gdal-config',
    '--with-proj-include=/Library/Frameworks/PROJ.framework/Headers',
    '--with-proj-lib=/Library/Frameworks/PROJ.framework/unix/lib'))

install.packages('rgeos', type = "source", configure.args=c(
    '--with-gdal-config=/Library/Frameworks/GDAL.framework/Programs/gdal-config',
    '--with-proj-include=/Library/Frameworks/PROJ.framework/Headers',
    '--with-proj-lib=/Library/Frameworks/PROJ.framework/unix/lib'))

install.packages('maptools', dependencies=TRUE)

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接