歡迎來到Linux教程網
Linux教程網
Linux教程網
Linux教程網
您现在的位置: Linux教程網 >> UnixLinux >  >> Linux綜合 >> 學習Linux

CentOS7下編譯安裝Mapnik

CentOS7下編譯安裝Mapnik


CentOS7下編譯安裝Mapnik


下載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

中間會出現錯誤如:

編譯一下harfbuzz 參照如下修改

Harfbuzz not found

$ brew install harfbuzz...$ ./configure...Checking for C++ library harfbuzz... noCould 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

http://xxxxxx/Linuxjc/1156045.html TechArticle

Copyright © Linux教程網 All Rights Reserved