Устранить сбой пакета rgdal при сборке Travis - PullRequest
3 голосов
/ 12 марта 2019

Я успешно использовал пакет rgdal R в моей сборке Travis около года, с небольшими проблемами.

С недавним развертыванием версии 1.4-2 rgdal - ранее проходившим -сборка начала давать сбой с сообщением

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()'

Любые советы о том, как решить эту проблему, с благодарностью

Ответы [ 3 ]

2 голосов
/ 13 марта 2019

Ответ 2 - правильный ответ. Я являюсь сопровождающим rgdal и авторитетно ответил на этот вопрос по почте и в твиттере. Когда достаточное количество пользователей устаревших версий PROJ (до 4.9.3, то есть до сентября 2016 г.) подтвердят, что 1.4-3 решит их проблемы, я отправлю 1.4-3 в CRAN. Я не буду и никогда не буду следовать ТАК, но если бы вы поступили правильно и отправили сообщение в R-sig-geo, вы бы привлекли мое внимание.

Я советую оказывать значительное давление на любые системы, все еще использующие PROJ 4.8.0 для обновления. Эта версия была опубликована 13 марта 2012 года, поэтому сегодня ей исполняется 7 лет, и она действительно заслуживает повторного использования.

2 голосов
/ 14 марта 2019

Просто чтобы прояснить, как вы можете указать Трэвису установить из R-Forge, как предложили Эдзер и Роджер.Я полагаю, что вы можете добавить следующее в любом месте вашего .travis.yml:

repos: 
  CRAN: https://cran.rstudio.com
  rforge: http://R-Forge.R-project.org

Подробнее см. Документация по настройке Travis R .

В качестве альтернативы вы можете буквально запустить команду R в блоке before_install, например, так:

before_install:
  - R -e 'install.packages("rgdal", repos=c("http://R-Forge.R-project.org", "http://cran.rstudio.com"))'

, что, возможно, немного более очевидно, но менее аккуратно.

1 голос
/ 13 марта 2019

Одним из способов решения этой проблемы было бы использование более старой версии rgdal. Чтобы установить конкретную версию пакета rgdal, вы можете добавить следующую строку в файл DESCRIPTION:

Remotes: cran/rgdal@1.3-9

При этом будет установлена ​​и использована предыдущая версия (1.3-9), выпущенная до 1.4-2. По крайней мере, это сработало для меня.

Получил идею отсюда: https://travis -ci.community / t / travis-build-ignoring-r-package-version-in-description / 2431/2

...