Skip to content

Instantly share code, notes, and snippets.

@pcace
Created March 31, 2025 11:11
Show Gist options
  • Save pcace/9ebcdf2fce91ec1deb9ddaeff9a2c242 to your computer and use it in GitHub Desktop.
Save pcace/9ebcdf2fce91ec1deb9ddaeff9a2c242 to your computer and use it in GitHub Desktop.
Install gdal from source on PopOS 22.04
#!/bin/bash
set -e
# Install build dependencies
sudo apt update
sudo apt install -y build-essential cmake wget unzip python3-dev \
libsqlite3-dev sqlite3 libtiff-dev libcurl4-openssl-dev \
libxml2-dev libexpat-dev libxerces-c-dev libpq-dev \
libfontconfig1-dev libcairo2-dev libpython3-dev swig \
python3-pip python3-numpy
# Ensure pip and numpy are installed before continuing
echo "=== Installing/Upgrading Python dependencies ==="
pip3 install --upgrade pip
pip3 install --upgrade numpy
echo "=== Installing PROJ ==="
cd /tmp
wget https://download.osgeo.org/proj/proj-9.6.0.tar.gz
tar xzf proj-9.6.0.tar.gz
cd proj-9.6.0
mkdir -p build && cd build
cmake .. -DCMAKE_BUILD_TYPE=Release -DCMAKE_INSTALL_PREFIX=/usr/local
cmake --build . -j$(nproc)
sudo cmake --install .
sudo ldconfig
echo "=== Installing GEOS ==="
cd /tmp
wget https://download.osgeo.org/geos/geos-3.13.1.tar.bz2
tar xjf geos-3.13.1.tar.bz2
cd geos-3.13.1
mkdir -p build && cd build
cmake .. -DCMAKE_BUILD_TYPE=Release -DCMAKE_INSTALL_PREFIX=/usr/local
cmake --build . -j$(nproc)
sudo cmake --install .
sudo ldconfig
echo "=== Installing GDAL ==="
cd /tmp
wget https://github.com/OSGeo/gdal/releases/download/v3.10.2/gdal-3.10.2.tar.gz
tar xzf gdal-3.10.2.tar.gz
cd gdal-3.10.2
# IMPORTANT: Disable Python bindings in the main build
mkdir -p build && cd build
cmake .. -DCMAKE_BUILD_TYPE=Release \
-DCMAKE_INSTALL_PREFIX=/usr/local \
-DGDAL_USE_INTERNAL_LIBS=ON \
-DGDAL_USE_TIFF=ON \
-DGDAL_USE_GEOTIFF=ON \
-DGDAL_USE_PNG=ON \
-DGDAL_USE_JPEG=ON \
-DGDAL_USE_GIF=ON \
-DGDAL_USE_CURL=ON \
-DGDAL_USE_GEOS=ON \
-DBUILD_PYTHON_BINDINGS=OFF \
-DGDAL_USE_SQLITE3=ON \
-DGDAL_USE_EXPAT=ON \
-DGDAL_USE_LIBXML2=ON \
-DGDAL_USE_XERCESC=ON \
-DGDAL_USE_POSTGRESQL=ON
cmake --build . -j$(nproc)
sudo cmake --install .
sudo ldconfig
echo "=== Testing installation ==="
# Test core GDAL first
ogrinfo --version
echo "=== GDAL Installation Complete ==="
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment