我已经成功使用Travis版本中的rgdal
R包大约一年了,几乎没有问题。
随着rgdal
1.4-2版的最新部署,以前通过的构建因消息而开始失败
In file included from inverser.c:5:0:
/tmp/Rtmpysf7it/R.INSTALL748c54b7a89/rgdal/inst/include/projects.h:150:33:
error: conflicting types for ‘projUV’ typedef struct { double u, v; } projUV;
^
In file included from inverser.c:3:0: /usr/include/proj_api.h:54:37:
note: previous declaration of ‘projUV’ was here
typedef struct { double u, v; } projUV;
我不确定“旧” proj_api.h的来源以及如何在Travis环境中删除它。
我的travis.yml配置如下:
language: r
dist: trusty
sudo: false
cache:
packages: yes
r_packages:
- testthat
- roxygen2
- covr
addons:
apt:
packages:
- gdal-bin
- proj-bin
- libgdal-dev
- libgdal1-dev
- libproj-dev
- libgeos-dev
- r-cran-ncdf4
- libv8-3.14-dev
- libprotobuf-dev
- protobuf-compiler
- libudunits2-dev
- libnetcdf-dev
- libjq-dev
before_install:
- sudo add-apt-repository -y ppa:ubuntugis/ubuntugis-unstable
- sudo add-apt-repository -y ppa:opencpu/jq
- sudo apt-get --yes --force-yes update -qq
after_success:
- Rscript -e 'covr::coveralls()'
非常感谢您提供有关如何解决此问题的建议
答案 0 :(得分:2)
答案2是正确答案。我是rgdal的维护者,并已通过邮件和Twitter权威地回答了这个问题。当足够多的PROJ版本过时的用户(4.9.3之前的版本,于2016年9月之前)确认1.4-3解决了他们的问题时,我将向CRAN提交1.4-3。我不会,也永远不会遵循SO,但是如果您做对了事并发布到R-sig-geo,您会引起我的注意。
我建议对仍使用PROJ 4.8.0进行升级的任何系统施加巨大压力。该版本于2012年3月13日发布,今天已经是7岁生日,真的值得回收。
答案 1 :(得分:2)
正如Edzer和Roger所建议的,只是为了阐明如何告诉Travis从R-Forge安装。我相信您可以在.travis.yml
的任何位置添加以下内容:
repos:
CRAN: https://cran.rstudio.com
rforge: http://R-Forge.R-project.org
有关详细信息,请参见Travis R configuration docs。
或者,您可以在before_install
块中逐字地运行R命令,如下所示:
before_install:
- R -e 'install.packages("rgdal", repos=c("http://R-Forge.R-project.org", "http://cran.rstudio.com"))'
如果不那么整洁,它可能会更明显。