首页 > 解决方案 > 在 Amazon Linux 2 上安装“libudunits2-dev”

问题描述

我在 Amazon-Linux-2 环境中工作,想安装"sf"依赖于libudunits2-dev系统库的 R 包。我收到错误消息:

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.

udunits2 不能与sudo yum install libudunits2-dev或一起安装libunits2-devel。我尝试安装和使用epel,但也不包含这个库。

udunits2从源代码安装,它可以找到库,但仍然存在错误。我不确定如何构建dev这个库的一个版本

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'

编辑 - - - - - - - - - - - - - -

感谢 Knud Larsen 更正了 epel 包名称。看起来安装有点复杂,但这是我想出来的。

sf 包依赖项是libudunits2-dev libgdal-dev libgeos-dev libproj-dev. amazon-linux-2 需要 epel 并从源代码构建。(注意:epel gdal 是版本 1,不兼容)。

# Add epel repository
sudo amazon-linux-extras install epel

# install udunits2
yum install -y udunits2-devel

# install proj/gdal dependency
yum install -y gcc-c++ cpp sqlite-devel libtiff cmake3

# build/install 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*

# build/install 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*

标签: rlinuxamazon-linux-2

解决方案


推荐阅读