install.packages("sf"): ERROR, 安装R包sf出错解决方法

R package sf, install.packages("sf") ERROR

* installing *source* package ‘sf’ ...
** package ‘sf’ successfully unpacked and MD5 sums checked
** using staged installation
configure: CC: /data/home/heshuai/Miniconda3/envs/RV_3.6/bin/x86_64-conda_cos6-linux-gnu-cc
configure: CXX: /data/home/heshuai/Miniconda3/envs/RV_3.6/bin/x86_64-conda_cos6-linux-gnu-c++
checking for gdal-config... /data/home/heshuai/Miniconda3/envs/RV_3.6/bin/gdal-config
checking gdal-config usability... yes
configure: GDAL: 3.1.2
checking GDAL version >= 2.0.1... yes
checking for gcc... /data/home/heshuai/Miniconda3/envs/RV_3.6/bin/x86_64-conda_cos6-linux-gnu-cc
checking whether the C compiler works... yes
checking for C compiler default output file name... a.out
checking for suffix of executables... 
checking whether we are cross compiling... no
checking for suffix of object files... o
checking whether we are using the GNU C compiler... yes
checking whether /data/home/heshuai/Miniconda3/envs/RV_3.6/bin/x86_64-conda_cos6-linux-gnu-cc accepts -g... yes
checking for /data/home/heshuai/Miniconda3/envs/RV_3.6/bin/x86_64-conda_cos6-linux-gnu-cc option to accept ISO C89... none needed
checking how to run the C preprocessor... /data/home/heshuai/Miniconda3/envs/RV_3.6/bin/x86_64-conda_cos6-linux-gnu-cpp
checking for grep that handles long lines and -e... /bin/grep
checking for egrep... /bin/grep -E
checking for ANSI C header files... yes
checking for sys/types.h... yes
checking for sys/stat.h... yes
checking for stdlib.h... yes
checking for string.h... yes
checking for memory.h... yes
checking for strings.h... yes
checking for inttypes.h... yes
checking for stdint.h... yes
checking for unistd.h... yes
checking gdal.h usability... yes
checking gdal.h presence... yes
checking for gdal.h... yes
checking GDAL: linking with --libs only... yes
checking GDAL: /data/home/heshuai/Miniconda3/envs/RV_3.6/share/gdal/pcs.csv readable... no
checking GDAL: checking whether PROJ is available for linking:... yes
checking GDAL: checking whether PROJ is available fur running:... ERROR 1: PROJ: proj_create_from_database: Open of /data/home/heshuai/Miniconda3/envs/RV_3.6/share/proj failed
ERROR 1: PROJ: proj_create_from_database: Open of /data/home/heshuai/Miniconda3/envs/RV_3.6/share/proj failed
ERROR 1: PROJ: proj_create: unrecognized format / unknown name
ERROR 6: Cannot find coordinate operations from `' to `'
no
configure: error: OGRCoordinateTransformation() does not return a coord.trans: PROJ not available?
ERROR: configuration failed for package ‘sf’
* removing ‘/data/home/heshuai/R/x86_64-conda_cos6-linux-gnu-library/sf’

The downloaded source packages are in
	‘/tmp/Rtmp9qEXgU/downloaded_packages’
Warning message:
In install.packages("sf") :
  installation of package ‘sf’ had non-zero exit status

sf 是R中非常重要的包,很多画图包都依赖与sf, 然而安装sf确实是个极大的挑战,经常出现各种错误。但是如上所示的错误是最难解决的,经过多番探索终于解决了。如上面错误所示,报Proj包错误,然而,我用conda安装的时候GDAL,GEOS和PROJ包都已经安装好了,并且已经更新到最高版本。安装错误的原因是设置不对,正确的安装sf方法如下:

install.packages("sf", configure.args = "--with-gdal config=/data/home/heshuai/Miniconda3/bin/gdal-config --with-geos-config=/data/home/heshuai/Miniconda3/bin/geos-config --with-proj include=/data/home/heshuai/Miniconda3/include/ --with-proj-lib=/data/home/heshuai/Miniconda3/lib/")

设置参数如上所示,包括 4部分:

1. --with-gdal-config = /data/home/heshuai/Miniconda3/bin/gdal-config
2. --with-geos-config = /data/home/heshuai/Miniconda3/bin/geos-config 
3. --with-proj-include = /data/home/heshuai/Miniconda3/include/ 
4. --with-proj-lib = /data/home/heshuai/Miniconda3/lib/

在安装时设置好了之后sf就完美安装了

* installing *source* package ‘sf’ ...
** package ‘sf’ successfully unpacked and MD5 sums checked
** using staged installation
configure: CC: /data/home/heshuai/Miniconda3/bin/x86_64-conda_cos6-linux-gnu-cc
configure: CXX: /data/home/heshuai/Miniconda3/bin/x86_64-conda_cos6-linux-gnu-c++
configure: gdal-config set to /data/home/heshuai/Miniconda3/bin/gdal-config
checking gdal-config exists... yes
checking gdal-config executable... yes
checking gdal-config usability... yes
configure: GDAL: 3.1.2
checking GDAL version >= 2.0.1... yes
checking for gcc... /data/home/heshuai/Miniconda3/bin/x86_64-conda_cos6-linux-gnu-cc
checking whether the C compiler works... yes
checking for C compiler default output file name... a.out
checking for suffix of executables... 
checking whether we are cross compiling... no
checking for suffix of object files... o
checking whether we are using the GNU C compiler... yes
checking whether /data/home/heshuai/Miniconda3/bin/x86_64-conda_cos6-linux-gnu-cc accepts -g... yes
checking for /data/home/heshuai/Miniconda3/bin/x86_64-conda_cos6-linux-gnu-cc option to accept ISO C89... none needed
checking how to run the C preprocessor... /data/home/heshuai/Miniconda3/bin/x86_64-conda_cos6-linux-gnu-cpp
checking for grep that handles long lines and -e... /bin/grep
checking for egrep... /bin/grep -E
checking for ANSI C header files... yes
checking for sys/types.h... yes
checking for sys/stat.h... yes
checking for stdlib.h... yes
checking for string.h... yes
checking for memory.h... yes
checking for strings.h... yes
checking for inttypes.h... yes
checking for stdint.h... yes
checking for unistd.h... yes
checking gdal.h usability... yes
checking gdal.h presence... yes
checking for gdal.h... yes
checking GDAL: linking with --libs only... yes
checking GDAL: /data/home/heshuai/Miniconda3/share/gdal/pcs.csv readable... no
checking GDAL: checking whether PROJ is available for linking:... yes
checking GDAL: checking whether PROJ is available fur running:... yes
configure: GDAL: 3.1.2
checking proj.h usability... yes
checking proj.h presence... yes
checking for proj.h... yes
checking PROJ: checking whether PROJ and sqlite3 are available for linking:... yes
configure: geos-config set to /data/home/heshuai/Miniconda3/bin/geos-config
checking geos-config exists... yes
checking geos-config executable... yes
checking geos-config usability... yes
configure: GEOS: 3.8.1
checking GEOS version >= 3.4.0... yes
checking geos_c.h usability... yes
checking geos_c.h presence... yes
checking for geos_c.h... yes
checking geos: linking with -L/data/home/heshuai/Miniconda3/lib -lgeos_c... yes
configure: Package CPP flags:  -I/data/home/heshuai/Miniconda3/include/ -DHAVE_PROJ_H -I/data/home/heshuai/Miniconda3/include -I/data/home/heshuai/Miniconda3/include
configure: Package LIBS: -L/data/home/heshuai/Miniconda3/lib/  -lproj  -L/data/home/heshuai/Miniconda3/lib -lgdal -L/data/home/heshuai/Miniconda3/lib -lgeos_c
configure: creating ./config.status
config.status: creating src/Makevars
** libs
x86_64-conda_cos6-linux-gnu-c++ -std=gnu++11 -I"/data/home/heshuai/Miniconda3/lib/R/include" -DNDEBUG -I/data/home/heshuai/Miniconda3/include/ -DHAVE_PROJ_H -I/data/home/heshuai/Miniconda3/include -I/data/home/heshuai/Miniconda3/include -I'/data/home/heshuai/Miniconda3/lib/R/library/Rcpp/include' -DNDEBUG -D_FORTIFY_SOURCE=2 -O2 -isystem /data/home/heshuai/Miniconda3/include -I/data/home/heshuai/Miniconda3/include -Wl,-rpath-link,/data/home/heshuai/Miniconda3/lib   -fpic  -fvisibility-inlines-hidden  -fmessage-length=0 -march=nocona -mtune=haswell -ftree-vectorize -fPIC -fstack-protector-strong -fno-plt -O2 -ffunction-sections -pipe -isystem /data/home/heshuai/Miniconda3/include -fdebug-prefix-map=/home/conda/feedstock_root/build_artifacts/r-base_1595316670215/work=/usr/local/src/conda/r-base-4.0.2 -fdebug-prefix-map=/data/home/heshuai/Miniconda3=/usr/local/src/conda-prefix  -c RcppExports.cpp -o RcppExports.o
x86_64-conda_cos6-linux-gnu-c++ -std=gnu++11 -I"/data/home/heshuai/Miniconda3/lib/R/include" -DNDEBUG -I/data/home/heshuai/Miniconda3/include/ -DHAVE_PROJ_H -I/data/home/heshuai/Miniconda3/include -I/data/home/heshuai/Miniconda3/include -
...........
...........
...........
** R
** demo
** inst
** byte-compile and prepare package for lazy loading
in method for ‘dbWriteTable’ with signature ‘"PostgreSQLConnection","character","sf"’: no definition for class “PostgreSQLConnection”
in method for ‘dbDataType’ with signature ‘"PostgreSQLConnection","sf"’: no definition for class “PostgreSQLConnection”
in method for ‘coerce’ with signature ‘"Spatial","sf"’: no definition for class “Spatial”
in method for ‘coerce’ with signature ‘"Spatial","sfc"’: no definition for class “Spatial”
in method for ‘coerce’ with signature ‘"sf","Spatial"’: no definition for class “Spatial”
in method for ‘coerce’ with signature ‘"sfc","Spatial"’: no definition for class “Spatial”
in method for ‘coerce’ with signature ‘"XY","Spatial"’: no definition for class “Spatial”
in method for ‘coerce’ with signature ‘"crs","CRS"’: no definition for class “CRS”
** help
*** installing help indices
*** copying figures
** building package indices
** installing vignettes
** testing if installed package can be loaded from temporary location
** checking absolute paths in shared objects and dynamic libraries
** testing if installed package can be loaded from final location
** testing if installed package keeps a record of temporary installation path
* DONE (sf)

The downloaded source packages are in
	‘/tmp/Rtmp3pC2yw/downloaded_packages’
Updating HTML index of packages in '.Library'
Making 'packages.html' ... done
> library(sf)
Linking to GEOS 3.8.1, GDAL 3.1.2, PROJ 7.0.0

参考:https://r-spatial.github.io/sf/

https://github.com/r-spatial/sf/issues/335

 

posted @ 2020-07-26 21:37  何帅  阅读(8556)  评论(2编辑  收藏  举报