Dieses Repository enthält zwei Build-Skripte für Geospatial Libraries (EXPAT, GEOS, PROJ, GDAL, MapServer) auf Linux-Systemen:
dev_GDAL_Mapserver.sh– Entwicklerversion: baut die neuesten Commits aus den Git-Repositories.stable_GDAL_Mapserver.sh– Stabile Version: baut definierte stabile Releases der Bibliotheken.
Beide Skripte richten isolierte Entwicklungsumgebungen ein, bauen die Komponenten aus den Quellen und führen Tests durch.
-
Sprache: Bash
-
Build-System: CMake + Ninja
-
Parallelisierung: konfigurierbar via
THREADS(Standard: 6) -
Logging:
/tmp/build_master.log -
Installationspfade (isoliert):
GEOS_PREFIX=/opt/geosPROJ_PREFIX=/opt/projGDAL_PREFIX=/opt/gdalMAPSERVER_PREFIX=/usr/local
-
Git-Repositories:
-
Build-Reihenfolge:
- EXPAT
- GEOS
- PROJ (inkl. EPSG-Validierung)
- GDAL (mit BUILD_TESTING=ON und Python-Bindings)
- GDAL Tests
- MapServer
- Endgültige Versions- und EPSG-Checks
-
Definierte Versionen:
- EXPAT:
R_2_7_3 - GEOS:
3.14.1 - PROJ:
9.7.1 - GDAL:
v3.12.0 - MapServer:
rel-8-6-0
- EXPAT:
-
Git-Repositories:
-
Build-Reihenfolge identisch mit Entwicklerversion, inkl. Tests und finalen Checks.
sudo apt-get update
sudo apt-get install -y build-essential cmake git pkg-config wget curl unzip \
libfreetype6-dev libfribidi-dev libharfbuzz-dev libcairo2-dev libfcgi-dev \
librsvg2-dev libexempi-dev swig python3-dev python3-numpy \
libfreexl-dev libxml2-dev libpq-dev librttopo-dev libzip-dev \
libzstd-dev libgeotiff-dev libsfcgal-dev libcrypto++-dev \
libpng-dev libgif-dev libspatialite-dev libminizip-dev sqlite3 libxerces-c-dev \
python3-pytest python3-pip python3-scipy python3-lxml \
python3-filelock python3-shapely python3-pyproj ccache ninja-build- Compiler Wrapping für beide Builds:
export CC="ccache gcc"
export CXX="ccache g++"- Umgebungsvariablen für Pfade, Library Paths und pkg-config bleiben identisch.
# Skripte ausführbar machen
chmod +x dev_GDAL_Mapserver.sh stable_GDAL_Mapserver.sh
# Entwicklerversion bauen
./dev_GDAL_Mapserver.sh
# Stabile Version bauen
./stable_GDAL_Mapserver.shAchtung: Löscht alte Installationen in den Prefixes GEOS, PROJ, GDAL und MapServer!
Optional: Anpassung der
THREADS-Variable für parallele Builds.
- Prüfe Versionsstände nach Installation:
$PROJ_PREFIX/bin/projinfo --version
$GEOS_PREFIX/bin/geos-config --version
$GDAL_PREFIX/bin/ogrinfo --version
/usr/local/bin/mapserv -v- PROJ EPSG-Tests:
projinfo EPSG:25833sollte aufgelöst werden - Bei Fehlern in Python-Bindings sicherstellen, dass
PYTHONPATHgesetzt ist - Live-Log Überwachung:
tail -f /tmp/build_master.log- Alle Build-Schritte werden in
/tmp/build_master.logprotokolliert