Shiny deployment error: upgrade GEOS to 3.6.0 or later while installing package ‘lwgeom’

余生颓废 提交于 2020-07-22 06:12:43

问题


I have a shiny app that runs fine on my computer. I use packages sf, leaflet, and tmap. One of these requires the package lwgeom as a dependency. While installing the package lwgeom, shiny deployment gives me the following error message. What is GEOS? And how can I upgrade GEOS to 3.6.0 or later?

Building R package: lwgeom (0.2-4)

/mnt/packages/build /mnt

* installing to library ‘/opt/R/4.0.0/lib/R/library’

* installing *source* package ‘lwgeom’ ...

** package ‘lwgeom’ successfully unpacked and MD5 sums checked

** using staged installation

configure: CC: gcc

configure: CXX: g++ -std=gnu++11

configure: pkg-config proj exists, will use it

configure: PROJ: 4.9.2

checking for pj_init_plus in -lproj... yes

checking PROJ: epsg found and readable... yes

configure: POSTGIS_PROJ_VERSION: 49

checking for geos-config... /usr/bin/geos-config

checking geos-config usability... yes

configure: GEOS: 3.5.1

checking GEOS version >= 3.6.0... no

configure: error: upgrade GEOS to 3.6.0 or later

ERROR: configuration failed for package ‘lwgeom’

* removing ‘/opt/R/4.0.0/lib/R/library/lwgeom’

################################# End Task Log ################################# 
Error: Unhandled Exception: Child Task 741115836 failed: Error building image: Error building lwgeom (0.2-4). Build exited with non-zero status: 1
Execution halted  

回答1:


From the lwgeom readme:

lwgeom depends on sf, which has to be installed first. This package uses the liblwgeom library, and compiles a shipped (and modified) version of liblwgeom. It links to the GEOS and PROJ libraries.

To install from source, it should be enough to have installed sf from source; the resources for this package (PROJ, GEOS) are being reused.

From the sf homepage

Simple Features for R

A package that provides simple features access for R. Package sf:

[snip]

  • interfaces to GEOS to support geometrical operations including the DE9-IM

That should answer your "What is GEOS?" question, but you might want to visit the GEOS homepage for a longer version.

In any case, you seem to be building lwgeom from source on Linux, so do read its install-from-source instructions. You'll probably want to upgrade the libgeos-dev system package, but the procedure to do so depends on your linux distribution. Let me quote the sf homepage once again, assuming you're running Ubuntu as your distro:

Ubuntu

[snip]

However, to get more up-to-date versions of dependencies such as GDAL, we recommend adding the ubuntugis-unstable PPA to the package repositories and installing them as follows:

sudo add-apt-repository ppa:ubuntugis/ubuntugis-unstable
sudo apt-get update
sudo apt-get install libudunits2-dev libgdal-dev libgeos-dev libproj-dev 

(It should be obvious that a different distro shall require a different method to install/upgrade system packages)




回答2:


Update: I notified shinyapps.io and after several weeks they upgraded to to GEOS 3.8.0. So, now my app deploys fine.



来源:https://stackoverflow.com/questions/62165453/shiny-deployment-error-upgrade-geos-to-3-6-0-or-later-while-installing-package

标签
易学教程内所有资源均来自网络或用户发布的内容,如有违反法律规定的内容欢迎反馈
该文章没有解决你所遇到的问题?点击提问,说说你的问题,让更多的人一起探讨吧!