CYBERTEC PostgreSQL Logo

PostGIS: Upgrade GEOS with Ubuntu in 3 Steps

10.2022 / Category: / Tags: | |

Many blog posts deal with installing or upgrading PostGIS. Today we'll talk about upgrading related libraries such as GEOS or GDAL. Since PostGIS’ functionality stack relies heavily on these libraries, downloading current library versions is unavoidable; you want to use the latest stunning spatial features. Unfortunately, not all repositories serve PostGIS with the latest libraries. In our example, we'll upgrade GEOS with Ubuntu.

Let’s see how to get the latest PostGIS libraries. Here's our scenario:

A customer runs a PostgreSQL 14.5 database with PostGIS 3.2.3 installed under Ubuntu 20.04.4 LTS.
She wants to test ST_ReducePrecision (https://postgis.net/docs/ST_ReducePrecision.html), a spatial function introduced in PostGIS 3.1.0. Unfortunately, this function requires at least GEOS 3.9.0.
Her system seems to be equipped with GEOS 3.8.0.

She needs to upgrade GEOS. Here are the 3 steps to do that:

Assess existing libraries - 1st step to upgrade GEOS with Ubuntu

As a reminder – to quickly assess which libraries have been installed in the system and particular database, execute the following commands from your psql console or preferred database client.

Unfortunately, Ubuntu does not serve GEOS versions later than 3.8.0 through default repositories for 20.04. This implies building GEOS from source, or switching to another distribution channel-respective repository. For clarification – it’s not sufficient to update GEOS alone, PostGIS must also be rebuilt against the required GEOS.

Let’s get our hands dirty and build GEOS from scratch.

Installing GEOS from source - 2nd step to upgrade GEOS with Ubuntu

First, install the necessary build requirements.

Continue by assessing the current geos-configuration with geos-config to confirm the basis.

Second, download and extract the latest source tar from the GEOS website - and finally, build and install GEOS.

Again, cross-check the geos-configuration with geos-config. It looks pretty good so far ????.

Installing PostGIS from source - 3rd step to upgrade GEOS with Ubuntu

Build requirements must first be installed to the system. The server in this example already runs PostgreSQL and therefore provides some of the needed dependencies. At this point I recommend taking a look at Chapter 2.2.2 of the PostGIS online documentation and subsequently assess your system to identify needed libraries and tools.

Next, download and extract the PostGIS source tar and configure the build.

This results in a configuration message summarizing the upcoming build action, which I recommend you briefly look through. The upcoming listing only contains a subset of the information provided.
You might have noticed that I didn’t install build requirements for SFCGAL. The extensions section indicates this fact and disables SFCGAL support.

Continue by compiling PostGIS. This can take some time.

Finally, we install the binaries.

PostGIS assessment - final check to assess upgrade completion

Did the upgrade succeed? Let’s quickly check this via psql.

Unfortunately, calling postgis_full_version does not tell the whole truth and does not guarantee that GEOS 3.11.0 is indeed utilized by PostGIS. I suggest re-running the test-query from the beginning to see the real difference.

TADA – it works as expected. Everybody should be happy. But wait – we didn’t even upgrade PostGIS on the database level. Isn’t that strange? No, because we didn’t change the PostGIS version. We stayed within PostGIS 3.2.3.

Afterword

For folks who want to upgrade PostGIS and GEOS one after the other, just utilize postgis_extensions_upgrade() on the database level after you build and install PostGIS. Learn more about upgrading PostGIS here.

In case you need support or have any questions, get in touch with the friendly folks at CYBERTEC. We would love to hear from you.

Leave a Reply

Your email address will not be published. Required fields are marked *

CYBERTEC Logo white
Get the newest PostgreSQL Info & Tools


    This site is protected by reCAPTCHA and the Google Privacy Policy & Terms of Service apply.

    ©
    2024
    CYBERTEC PostgreSQL International GmbH
    phone-handsetmagnifiercrosscross-circle
    linkedin facebook pinterest youtube rss twitter instagram facebook-blank rss-blank linkedin-blank pinterest youtube twitter instagram