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

2025-10-05 17:35:01

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