You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Amazon Linux 2安装R包sf时libudunits2-dev依赖缺失如何解决?

Amazon Linux 2 环境安装 R 包 sf 操作指南

问题背景

在 Amazon Linux 2 中安装 R 包 sf 时,因依赖系统库 libudunits2-dev 触发报错,报错信息如下:

Configuration failed because libudunits2.so was not found. Try installing:
    * deb: libudunits2-dev (Debian, Ubuntu, ...)
    * rpm: udunits2-devel (Fedora, EPEL, ...)
    * brew: udunits (OSX)
  If udunits2 is already installed in a non-standard location, use:
    --configure-args='--with-udunits2-lib=/usr/local/lib'
  if the library was not found, and/or:
    --configure-args='--with-udunits2-include=/usr/include/udunits2'
  if the header was not found, replacing paths with appropriate values.
  You can alternatively set UDUNITS2_INCLUDE and UDUNITS2_LIBS manually.

尝试过的无效操作

  • 执行 sudo yum install libudunits2-dev,无匹配安装包
  • 执行 sudo yum install libunits2-devel,无匹配安装包
  • 启用 epel 源后仍找不到对应依赖库
  • 手动从源码编译安装 udunits2,操作命令如下:
wget ftp://ftp.unidata.ucar.edu/pub/udunits/udunits-2.2.28.tar.gz &&\
  tar -xvzf udunits-2.2.28.tar.gz; rm udunits-2.2.28.tar.gz &&\
  cd udunits-2.2.28 &&\
  ./configure -prefix=/usr/local &&\
  make install &&\
  cd .. && rm -rf udunits-2.2.28

编译完成后仍触发加载报错,报错信息如下:

** testing if installed package can be loaded from temporary location
Error: package or namespace load failed for 'units' in dyn.load(file, DLLpath = DLLpath, ...):
 unable to load shared object '/usr/lib64/R/library/00LOCK-units/00new/units/libs/units.so':
  libudunits2.so.0: cannot open shared object file: No such file or directory
Error: loading failed
Execution halted
ERROR: loading failed
* removing '/usr/lib64/R/library/units'
ERROR: dependency 'units' is not available for package 'sf'

问题根因

sf 包依赖系统库 libudunits2-dev、libgdal-dev、libgeos-dev、libproj-dev,Amazon Linux 2 的 epel 源默认提供的 gdal 为 1.x 版本,不兼容新版本 sf 包,需要手动编译高版本依赖。

最终可行安装步骤

# 启用epel源
sudo amazon-linux-extras install epel

# 安装udunits2依赖
yum install -y udunits2-devel

# 安装proj、gdal编译依赖
yum install -y gcc-c++ cpp sqlite-devel libtiff cmake3

# 编译安装proj
wget https://download.osgeo.org/proj/proj-6.1.1.tar.gz
tar -xvf proj-6.1.1.tar.gz
cd proj-6.1.1
./configure
sudo make
sudo make install
cd ..
rm -rf proj-6.1.1*

# 编译安装gdal
wget https://github.com/OSGeo/gdal/releases/download/v3.2.1/gdal-3.2.1.tar.gz
tar -xvf gdal-3.2.1.tar.gz
cd gdal-3.2.1
./configure --with-proj=/usr/local --with-python
sudo make
sudo make install
cd ..
rm -rf gdal-3.2.1*

以上系统依赖安装完成后,再在 R 环境中执行 install.packages("sf") 即可正常安装。


内容的提问来源于stack exchange,提问作者Artem

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.10.03 05:24:03