I’ve updated the Fedora Quick Docs > Databases > PostgreSQL and added a section Skipped major release:
I have been using Postgres 17 on F42, but after the upgrade to F43, I can’t upgrade to Postgres 18 with the instructions given in the quick docks. Installing postgres18-upgrade fails because it seems to have a dependency on the beta version:
$ sudo dnf install postgresql18-upgrade
Updating and loading repositories:
Repositories loaded.
Failed to resolve the transaction:
Problem: package postgresql-upgrade-18beta1-4.fc43.i686 from fedora requires postgresql-server(x86-32) = 18beta1-4.fc43, but none of the providers can be installed
- conflicting requests
- postgresql-server-18beta1-4.fc43.i686 from fedora has inferior architecture
- package postgresql-upgrade-18beta1-4.fc43.x86_64 from fedora requires postgresql-server(x86-64) = 18beta1-4.fc43, but none of the providers can be installed
- problem with installed package
- installed package postgresql17-server-17.6-1.fc43.x86_64 conflicts with postgresql-server-any provided by postgresql-server-18beta1-4.fc43.x86_64 from fedora
- package postgresql-server-18beta1-4.fc43.x86_64 from fedora conflicts with postgresql-server-any provided by postgresql17-server-17.6-1.fc43.x86_64 from fedora
- package postgresql-upgrade-18.1-1.fc43.i686 from updates requires postgresql-server(x86-32) = 18.1-1.fc43, but none of the providers can be installed
- postgresql-server-18.1-1.fc43.i686 from updates has inferior architecture
- package postgresql-upgrade-18.1-1.fc43.x86_64 from updates requires postgresql-server(x86-64) = 18.1-1.fc43, but none of the providers can be installed
- installed package postgresql17-server-17.6-1.fc43.x86_64 conflicts with postgresql-server-any provided by postgresql-server-18.1-1.fc43.x86_64 from updates
- package postgresql-server-18.1-1.fc43.x86_64 from updates conflicts with postgresql-server-any provided by postgresql17-server-17.6-1.fc43.x86_64 from fedora
You can try to add to command line:
--allowerasing to allow removing of installed packages to resolve problems
--skip-broken to skip uninstallable packages
It seems a full backup, followed by a removal of 17 and fresh install of 18 is again necessary (similar to F41 → F42 upgrade).
To be honest, this is a bit annoying, as the Postgres upgrade is usually quite easy, when you can use pg_upgrade “manually” - but that requires the old and new version to be installed in parallel (and it does not have any restriction about how many major versions are affected).
For my simple use cases, KC Tessarek’s hint worked. Specifically:
# pkgs17=$(rpm -qa | grep postgres | sed 's/\(.*\)-17.*/\1/' | xargs)
# pkgs18=$(echo $pkgs17 | sed 's/postgresql17/postgresql/g')
# dnf install $pkgs18 --allowerasing
Then, in my case, I had to upgrade without the checksums and apply them afterward:
# su - postgres
$ PGSETUP_INITDB_OPTIONS="--no-data-checksums" postgresql-upgrade /var/lib/pgsql/data
$ pg_checksums -e -D /var/lib/pgsql/data
Then I had to re-apply my configuration customizations:
$ cp data/pg_hba.conf{,.original}
$ vimdiff data{,_old}/pg_hba.conf
$ cp data/postgresql.conf{,.original}
$ vimdiff data{,_old}/postgresql.conf
$ ./delete_old_cluster.sh
$ exit
Everything seems to be working OK now. ![]()
Thanks for the hints KC Tessarek!
Two notes:
- The docs have a typo, a dash got eaten. It should be
PGSETUP_INITDB_OPTIONS="--no-data-checksums"instead ofPGSETUP_INITDB_OPTIONS="–no-data-checksums" - If you were using pgvector, there is a topic about how it’s also not packaged for 17. I solved it by ignoring it, but this thread accumulated a bunch of good knowledge around it.
Thanks for the info everyone added here!
Thanks for catching this. I’ve created a PR. Let’s see how long it takes to get it merged. ![]()