CentOS7下Mapnik编译安装笔记

下载mapnik,我选用的是Master的版本,Master版本需要glibc2.14+的支持,这个需要注意一下。

git clone https://github.com/mapnik/mapnik.git

安装必要的依赖

yum install boost-devel postgresql-devel proj-devel proj-epsg

扩展需要的依赖

yum install sqlite-devel libpng-devel libtiff-devel libjpeg-devel libicu-devel

编译的时候,官方需求最少要有5GB(for g++)的内存,对于小内存的用户(我当时只有2G)可能会出现内存不够而异常退出的情况,如果出现以下状况而退出的话:

g++: internal compiler error: Killed (program cc1plus)

我们可以临时增加磁盘交换空间来临时解决该问题

sudo dd if=/dev/zero of=/swapfile bs=64M count=16  
sudo mkswap /swapfile  
sudo swapon /swapfile  

然后在编译完成后,在恢复到之前的状态

sudo swapoff /swapfile  
sudo rm /swapfile  

开始编译

./configure make make install

简单测试

python import mapnik

如果出现类似的错误

ImportError: libmapnik.so.3.0: cannot open shared object file: No such file or directory

需要手工添加一下so的位置

vim /etc/ld.so.conf.d/mapnik-x86_64.conf

添加一行内容: /usr/local/lib

然后保存退出,同时执行一下

ldconfig

如果没有问题的话可以试一下渲染demo,会生成一些不同品质不同格式的图片demo文件

python demo/python/rundemo.py