Windows XP Windows 7 Windows 2003 Windows Vista Windows 綜合教學 Linux 系統教學
Windows 10 Windows 8 Windows 2008 Windows NT Windows Server 電腦軟體教學
您现在的位置: Windows教程網 >> Windows教程 >  >> Linux 系統教學 >> 關於 Linux

Ubuntu 安裝 Mapnik GIS 渲染庫:從依賴配置到編譯安裝完整實錄

編輯:關於 Linux

Mapnik 是高性能 C++ 地圖渲染庫,Python 綁定廣泛用於 TileMill、OpenStreetMap 瓦片生成。本文記錄 Ubuntu 14.04/16.04/18.04/20.04 完整編譯安裝流程,含依賴解決、內存不足應對、驗證測試。

協議棲清理

sudo apt-get purge libmapnik* mapnik-utils python-mapnik

依賴安裝 (分類清單)

Boost 庫 (核心依賴)

sudo apt-get install \
  libboost-filesystem-dev libboost-program-options-dev \
  libboost-python-dev libboost-regex-dev \
  libboost-system-dev libboost-thread-dev

構建工具鏈

sudo apt-get install \
  build-essential python-dev python-nose git

圖像/字體/地理空間庫

sudo apt-get install \
  libicu-dev libxml2 libxml2-dev \
  libfreetype6 libfreetype6-dev \
  libjpeg-dev libpng-dev libtiff-dev \
  libcairo2 libcairo2-dev python-cairo python-cairo-dev \
  libcairomm-1.0-1 libcairomm-1.0-dev \
  ttf-unifont ttf-dejavu ttf-dejavu-core ttf-dejavu-extra \
  libgdal-dev python-gdal \
  libproj-dev libsqlite3-dev

數據庫支持 (PostGIS)

# Ubuntu 14.04 (PostgreSQL 9.3)
sudo apt-get install postgresql-9.3 postgresql-server-dev-9.3 postgresql-contrib-9.3 postgresql-9.3-postgis-2.1

# Ubuntu 16.04+ (PostgreSQL 9.5/10/12+)
sudo apt-get install postgresql postgresql-server-dev-all postgresql-contrib postgis

編譯安裝

獲取源碼 (開發分支 2.3.x)

git clone https://github.com/mapnik/mapnik mapnik-2.3.x -b 2.3.x
cd mapnik-2.3.x

配置、編譯、安裝

./configure && make && sudo make install

關鍵問題應對

內存不足導致編譯失敗

# 錯誤: virtual memory exhausted: Cannot allocate memory
# 原因: 模板元編程消耗大量內存,建議 4GB+ 內存

# 解決方案:
# 1. 增加 swap (臨時)
sudo fallocate -l 4G /swapfile
sudo chmod 600 /swapfile
sudo mkswap /swapfile
sudo swapon /swapfile

# 2. 限制並行編譯職程
make -j2  # 而非默認 -j$(nproc)

# 3. 分模塊編譯 (如支持)
# 4. 雲服務器臨時升級內存配置

內部編譯器錯誤 (killed)

# 錯誤: internal compiler error: Killed (program cc1plus)
# 原因: OOM Killer 終止編譯進程
# 同樣通過增加 swap、限制並行度解決

安裝驗證

# 查看版本
mapnik-config -v
# 輸出: 2.3.0-pre

# Python 綁定測試
python -c "import mapnik; print(mapnik.__version__)"

# 渲染測試
python -c "
import mapnik
m = mapnik.Map(256, 256)
mapnik.load_map(m, '/usr/local/share/mapnik/demo/stylesheet.xml')
m.zoom_all()
im = mapnik.Image(256, 256)
mapnik.render(m, im)
im.save('test.png', 'png')
print('Render test passed')"

版本對應關係

Ubuntu 版本PostgreSQLPostGISMapnik 分支
14.049.32.12.2.x / 2.3.x
16.049.52.22.3.x / 3.0.x
18.04102.43.0.x / 3.1.x
20.04123.03.1.x / master
22.04143.23.1.x / master

生產部署建議

  • 使用 virtualenv 隔離 Python 環境
  • 編譯安裝至 /opt/mapnik 避免污染系統路徑
  • 配合 mod_tile + renderd 部署瓦片服務
  • 監控內存使用,渲染大地圖時峰值可達 2-4GB

Mapnik 編譯安裝雖繁瑣,但掌握依賴鏈與內存優化,即可獲得最強地圖渲染引擎。

Copyright © Windows教程網 All Rights Reserved