PostgreSQL PostGIS Library Dependency Issue?

On recent upgrade to Fedora Workstation 38, looking to get PostgreSQL installed with postGIS:
sudo dnf install postgresql-server postgresql-contrib postgis pgadmin4

The above installs PostgreSQL 15.1 fine with all install requests using just the Fedora repo.

I can configure PostgreSQL, start the service, and start creating/looking at dbs with pgAdmin4.

However, if I run the CREATE EXTENSION postgis; command in an SQL query against a new db then the postGIS extension can’t be created due to a postGIS library error:

ERROR: could not load library “/usr/lib64/pgsql/postgis-3.so”: /usr/lib64/pgsql/postgis-3.so: undefined symbol: GEOSConcaveHullOfPolygons
SQL state: 58P01

I’ve tried sudo dnf remove postgis and manually installing a postgis RPM from postgresql.org, but unfortunately those RPM versions have quite a few other dependencies that are not installed. I also tried ditching the Fedora repo version of the PostgreSQL apps then going with the PostgreSQL versions instead:

sudo dnf install -y https://download.postgresql.org/pub/repos/yum/reporpms/F-37-x86_64/pgdg-fedora-repo-latest.noarch.rpm
sudo dnf install -y postgresql15-server postgresql15-contrib

Those actually run fine on Fedora 38 too, but don’t recognize that the Fedora repo version of postgis is installed. Likely this is due to using a slightly different directory structure.

I’ve reverted to the official Fedora versions of PostgreSQL, although I do think the postgresql.org versions are more advantageous because I can stick with a major release (v15) until I want to move on to the next one (v16.)

If anyone can help point me to getting a version of postGIS installed and working on Fedora Workstation 38 with either the Fedora repo version of PostgreSQL or the postgresql.org version, that’d be greatly appreciated.

Respectfully, (I really appreciate all the work folks put in maintaining these repositories,) it also seems to me that there is an issue/bug with the version of postGIS provided in the Fedora 38 repositories not being compatible with the version of PostgreSQL in the same repositories, so hopefully sharing this feedback may be helpful.

Managed to get this resolved finally so sharing full steps in case it helps someone else.
Currently the Fedora repos postgresql-server and postgis are not compatible (there is still an issue there) so I had to go with the official PostgreSQL repos instead as my workaround.

The short version is that I could use the PostgreSQL repo version of the db server with the PostgreSQL repo version of postgis after installing the PostgreSQL repositories.
i.e. don’t sudo dnf install postgresql-server postgis.
Instead sudo dnf install postgresql15-server postgis33_15

Here are the steps in full…

Please note that you specify the PostgreSQL major release you want from the PostgreSQL repos, (from 11 to 16,) and you’ll get updates within that release but you’ll manually need to switch to a later release when it comes out if you want to with a new dnf install, which can be side-by-side so you can run multiple releases if you edit PostgreSQL’s .conf files. Currently 15 is the latest production stable version so I went with that.

Make sure you’re starting with a clean slate only if you’ve installed before:
sudo rm -rf /etc/yum.repos.d/pgdg-fedora-all.repo
sudo dnf remove pgdg-fedora-repo postgresql* postgis

You can replace the ‘15’ all of the following with a different major release number.

Install the PostgreSQL repositories:
sudo dnf install -y https://download.postgresql.org/pub/repos/yum/reporpms/F-37-x86_64/pgdg-fedora-repo-latest.noarch.rpm

install the PostgreSQL server, postgis and a useful db admin GUI (pgadmin4):
sudo dnf install -y postgresql15-server postgresql15-contrib postgis33_15 pgadmin4-qt
sudo /usr/pgsql-15/bin/postgresql-15-setup initdb

If postgresql15 can’t be installed due to modular filtering then you need to disable the stock postgresql in the Fedora repo first:
sudo dnf -y module disable postgresql

I typically want to edit the PostgreSQL config file so can log in with a user id and password:
sudo gedit /var/lib/pgsql/15/data/pg_hba.conf then find these two lines…

host all all 127.0.0.1/32 ident
host all all ::1/128 ident
…and replace ident with scram-sha-256

Start the PostgreSQL service:
sudo systemctl start postgresql-15

If you want it to auto-start when the machine boots, use this instead:
sudo systemctl enable postgresql-15

Before doing anything else, give the postgres admin user a password!
sudo -u postgres psql
password postgres
ctrl+d will get you out of the psql session once you’ve set the password.

Fire up the pgadmin app, or your favorite PostgreSQL db tool and make sure you can connect to your server on the default port with the username of postgres and your password. Create a new db, which you can do with SQL or the GUI with pgadmin, and enter this SQL against your new db to test that the postgis extension is working:
create extension postgis;