服务器之家:专注于服务器技术及软件下载分享
分类导航

Linux|Centos|Ubuntu|

CentOS7下编译安装Mapnik Mapnik编译教程

2019-07-08 13:39服务器之家 Centos

本文为大家具体的介绍如何在CentOS7系统下编译安装Mapnik?小编这里使用的是Master版本,Master版本需要glibc2.14+的支持,一起来看看吧

InstallationTroubleshooting 编译安装遇到问题汇总

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 

中间会出现错误如:

CentOS7下编译安装Mapnik Mapnik编译教程

编译一下harfbuzz 参照如下修改

Harfbuzz not found

$ brew install harfbuzz
...
$ ./configure
...
Checking for C++ library harfbuzz... no
Could not find required header or shared library for harfbuzz
...
Exiting... the following required dependencies were not found:
 - harfbuzz (HarfBuzz text shaping library | configure with HB_LIBS & HB_INCLUDES)

Solution: HB_LIBS and HB_INCLUDES are directories, not cflags/ldflags, and HB_INCLUDES needs not to include the “harfbuzz” directory itself. If pkg-config says:

$ pkg-config --libs --cflags harfbuzz 

-I/usr/local/Cellar/harfbuzz/0.9.35_1/include/harfbuzz -L/usr/local/Cellar/harfbuzz/0.9.35_1/lib -lharfbuzz 

what you actually need is 修改配置文件为,直接指定HB_LIBS,HB_INCLUDES

$ ./configure HB_LIBS=/usr/local/Cellar/harfbuzz/0.9.35_1/lib HB_INCLUDES=/usr/local/Cellar/harfbuzz/0.9.35_1/include 

简单测试

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
 

延伸 · 阅读

精彩推荐
  • CentosCentOS 7下网络设备如何命名?

    CentOS 7下网络设备如何命名?

    很多用户不知道CentOS 7下网络设备如何命名?今天小编将为大家带来CentOS 7下网络设备命名的方法,希望对大家会有帮助;有需要的朋友一起去看看吧...

    CentOS之家1322019-06-22
  • Centoscentos中的/etc/sudoers文件中的权限设定方法讲解

    centos中的/etc/sudoers文件中的权限设定方法讲解

    今天小编为大家带来的是centos中的/etc/sudoers文件中的权限设定方法讲解;希望对大家会有帮助,有需要的朋友一起去看看吧...

    服务器之家4782019-06-13
  • CentosCentOS开机自动运行自己的脚本详解

    CentOS开机自动运行自己的脚本详解

    今天小编为大家带来的是CentOS开机自动运行自己的脚本详解。希望可以帮助到大家,有需要的朋友一起去看看吧...

    服务器之家1822019-06-21
  • CentosCentOS上SSH客户端PAC Manager的安装流程讲解

    CentOS上SSH客户端PAC Manager的安装流程讲解

    SSH即Secure Shell协议的缩写,一般被人们用作远程服务器登录,Linux下在这里我们推荐PAC Manager,下面我们就一起来看一下在CentOS上SSH客户端PAC Manager的安装流程讲解...

    码农的士首席的哥队长4402019-05-26
  • CentosCentOS下top和free命令查看系统中空闲内存的方法

    CentOS下top和free命令查看系统中空闲内存的方法

    今天小编为大家带来的是CentOS下top和free命令查看系统中空闲内存的方法;希望对大家会有帮助,有需要的朋友一起去看看吧...

    centos之家2732019-06-24
  • Centos修改虚拟机中的centos系统分辨率的方法

    修改虚拟机中的centos系统分辨率的方法

    使用vmware虚拟机安装centos系统,默认分辨都很低,如何修改虚拟机中centos系统的分辨率呢,下面小编将为大家带来修改虚拟机中的centos系统分辨率的方法,希望能够帮助到大家!有需要的朋友一起去看看吧...

    centos之家3292019-06-10
  • Centoscentos7搭建jira服务版本6.3.6详解

    centos7搭建jira服务版本6.3.6详解

    今天小编要为大家带来的是centos7搭建jira服务版本6.3.6详解;希望对大家会有帮助,有需要的朋友一起去看看吧...

    脚本之家3732019-05-30
  • Centoscentos7.1如何手动安装ceph

    centos7.1如何手动安装ceph

    最近一些朋友在问centos7.1如何手动安装ceph?别担心!下面小编将为大家带来的是centos7.1手动安装ceph的方法!希望对大家会有帮助,有需要的朋友一起去看看吧...

    脚本之家2232019-06-06