centOS7| 编译安装monocle3依赖的 gdal 库 - 动态链接库

17 篇文章 0 订阅

安装 monocle3 需要这个十分难安装的库。
环境是 centOS7.9,基本都是老组件,没有怎么升级过。
目前看,最简单的是使用dcoker,安装 ubuntu,然后再 apt 安装 gdal,然后就可以安装 monocle 了。
直接在 centOS7 安装则十分困难,目前还没成功。

1 尝试

个人尝试几次,都报错。

(1) 自带的帮助文档

$ pwd
/home/wangjl/software/gdal-2.4.2

$ ./configure --help

2. 查资料

搜索关键词: centOS7 make gdal

(1) 知乎查到几个其他人的

(2) CSDN

以上信息表明,gdal 需要至少依赖 proj。

(3) 二进制文件呢

https://centos.pkgs.org/7/postgresql-common-x86_64/gdal34-3.4.1-3.rhel7.x86_64.rpm.html

(4) gist: gdal-centos7.md

https://gist.github.com/alanorth/9681766ed4c737adfb48a4ef549a8503

Install Proj

GDAL needs Proj:

$ cd /tmp
$ wget https://download.osgeo.org/proj/proj-6.1.1.tar.gz
$ tar xf proj-6.1.1.tar.gz 
$ cd proj-6.1.1
$ ./configure --prefix=/export/apps/proj/6.1.1
$ make -j4
$ sudo mkdir -p /export/apps/proj/6.1.1
$ sudo chown aorth /export/apps/proj/6.1.1
$ make install
$ sudo chown -R root:root /export/apps/proj/6.1.1

Install GDAL

$ cd /tmp
$ wget https://download.osgeo.org/gdal/2.4.2/gdal-2.4.2.tar.gz
$ tar xf gdal-2.4.2.tar.gz
$ cd gdal-2.4.2
$ sudo yum install libzstd-devel sqlite-devel libwebp-devel hdf5-devel
$ ./configure --prefix=/export/apps/gdal/2.4.2 --with-proj=/export/apps/proj/6.1.1
$ make -j4
$ sudo mkdir -p /export/apps/gdal/2.4.2
$ sudo chown -R aorth /export/apps/gdal/2.4.2
$ make install
$ sudo chown -R root:root /export/apps/gdal/2.4.2

以上信息表明,gdal 2.4.2 和 proj 6.1.1 是搭配的。

(5) Rstudio 的问答

https://community.rstudio.com/t/installing-gdal-2-0-1-or-higher-on-centos-7-7/63895

sudo yum-builddep gdal
wget http://download.osgeo.org/gdal/2.4.0/gdal-2.4.0.tar.gz
tar xf gdal-2.4.0.tar.gz
cd gdal-2.4.0/
./configure
make -j4
sudo make install
# make sure the library can be found
echo /usr/local/lib | sudo tee -a /etc/ld.so.conf.d/local.conf
sudo ldconfig

其中,make -j4 什么意思?表示使用4个线程编译。

虚拟空白CentOS正常的,到真机上又报错了。
算了,还是使用 docker 版的 ubuntu 安装monocle3 吧。

3. 一个可行的方案

先在一个虚拟机版的空白CentOS7系统上编译gdal,然后把so文件复制到主机使用。

###1 下载
$ pwd
/home/wangjl/Downloads

proj-4.9.2.tar.gz(https://download.osgeo.org/proj/proj-4.9.2.tar.gz)
gdal2.4.4.tar.gz(http://download.osgeo.org/gdal/2.4.4/gdal-2.4.4.tar.gz)

###2 安装 proj 库
$ pwd
/home/wangjl/Downloads/

$ tar xvfz proj-4.9.2.tar.gz
$ cd ./proj-4.9.2
$ ./configure --prefix=$HOME/local/proj-4.9.2
$ make 
$ make install 

make[1]: Leaving directory `/home/wangjl/Downloads/proj-4.9.2'

检查
$ ls -lth ~/local/proj-4.9.2/
total 0
drwxrwxr-x. 3 wangjl wangjl 120 Jul  4 08:17 lib
drwxrwxr-x. 4 wangjl wangjl  29 Jul  4 08:17 share
drwxrwxr-x. 2 wangjl wangjl 113 Jul  4 08:17 include
drwxrwxr-x. 2 wangjl wangjl  88 Jul  4 08:17 bin


###3 安装 gdal 库
$ cd ..
$ tar xvfz gdal-2.4.4.tar.gz
$ cd gdal-2.4.4

$ ./configure --with-proj=$HOME/local/proj-4.9.2 --prefix=$HOME/local/gdal-2.4.4
## 原文说: --with-sfcgal=no设置不编译sfcgal,否则需要安装cgal,很麻烦。我没管它。

$ make #十分耗时 20:19-->20:38 #有人说需要20min,果然是;
$ make install
/home/wangjl/Downloads/gdal-2.4.4/install-sh -c -m 0644 gdal.pc /home/wangjl/local/gdal-2.4.4/lib/pkgconfig/gdal.pc

查看
$ ls -lth ~/local
total 0
drwxrwxr-x. 7 wangjl wangjl 67 Jul  4 08:38 gdal-2.4.4
drwxrwxr-x. 6 wangjl wangjl 56 Jul  4 08:17 proj-4.9.2

$ ls -lth ~/local/gdal-2.4.4/lib
total 454M
drwxr-xr-x. 2 wangjl wangjl   21 Jul  4 08:38 pkgconfig
drwxr-xr-x. 2 wangjl wangjl    6 Jul  4 08:38 gdalplugins
-rw-r--r--. 1 wangjl wangjl 327M Jul  4 08:38 libgdal.a
-rwxr-xr-x. 1 wangjl wangjl 1.1K Jul  4 08:38 libgdal.la
lrwxrwxrwx. 1 wangjl wangjl   17 Jul  4 08:38 libgdal.so -> libgdal.so.20.5.4
lrwxrwxrwx. 1 wangjl wangjl   17 Jul  4 08:38 libgdal.so.20 -> libgdal.so.20.5.4
-rwxr-xr-x. 1 wangjl wangjl 128M Jul  4 08:38 libgdal.so.20.5.4


拷贝过去
$ scp libgdal.so.20.5.4 wangjl@x.biomooc.com:/home/wangjl/local/gdal-2.4.4/

> dyn.load("/home/wangjl/local/gdal-2.4.4/libgdal.so.20.5.4") #必要
> library(monocle3) #也成功载入!
说明so的名字不重要。

(2) 如果还报错,使用 yum 安装 proj

搜索包:
$ yum search proj | grep ^proj
proj.x86_64 : Cartographic projection software (PROJ.4)
proj-devel.x86_64 : Development files for PROJ.4
proj-epsg.x86_64 : EPSG dataset for PROJ.4
proj-nad.x86_64 : US and Canadian datum shift grids for PROJ.4
proj-static.x86_64 : Development files for PROJ.4
projectM-jack.x86_64 : The projectM visualization plugin for jack
projectM-pulseaudio.x86_64 : The projectM visualization plugin for pulseaudio

安装:
$ sudo yum install proj
$ sudo yum install proj-devel

重启R session,再进入R执行那两行即可。

以上方法可以使用同一个主机上其他人的 monocle3 了。
至于如何从头编译安装,待叙。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 1
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值