Kurztipp: CentOS 7.4, PostgreSQL 9.2.23 und Spacewalk 2.7: Could not install database

Beim Installieren von Spacewalk 2.7 unter CentOS 7.4 mit PostgreSQL 9.2.23 bin ich neulich auf den folgenden Fehler gestoßen:

1# spacewalk-setup
2* Setting up SELinux..
3** Database: Setting up database connection for PostgreSQL backend.
4** Database: Installing the database:
5** Database: This is a long process that is logged in:
6** Database:   /var/log/rhn/install_db.log
7*** Progress: ####
8Could not install database.

Ein Blick in das erwähnte Protokoll brachte die folgenden Fehler zum Vorschein:

 1# less /var/log/rhn/install_db.log
 2...
 3Created symlink from /etc/systemd/system/multi-user.target.wants/postgresql.service to /usr/lib/systemd/system/postgresql.service.
 4**Hint: the preferred way to do this is now "postgresql-setup initdb"**
 5Initializing database ... OK
 6
 7/usr/bin/spacewalk-setup-postgresql: Line 165: [: 018446744073692774399: integer expression expected.
 8Redirecting to /bin/systemctl start postgresql.service
 9createdb: database creation failed: ERROR:  new encoding (UTF8) is incompatible with the encoding of the template database (SQL_ASCII)
10HINT:  Use the same encoding as in the template database, or use template0 as template.

Besonders auffällig fand ich den Hinweis, das Kommando postgresql-setup auszuführen. Glücklicherweise habe ich einen Snapshot des Systems erstellt und konnte kurz "zurückspulen", um den Hinweis auszuprobieren.

Schlussendlich war bei meinem System trotz korrekt gesetzter Spracheinstellungen der folgende Aufruf notwendig, um die PostgreSQL-Datenbank zu initialisieren:

1# LANG=en_US.utf8 postgresql-setup initdb

Anschließend war die Installation von Spacewalk möglich - auch, wenn beim Erstellen der Datenbank ein leeres Terminal gestartet wurde. Nach dem Schließen des Programms fuhr die Installation fort:

 1# spacewalk-setup
 2* Setting up SELinux..
 3** Database: Setting up database connection for PostgreSQL backend.
 4** Database: Installing the database:
 5** Database: This is a long process that is logged in:
 6** Database:   /var/log/rhn/install_db.log
 7*** Progress: #
 8** Database: Installation complete.
 9** Database: Populating database.
10...

Hierbei scheint es sich um einen Bug zu handeln, der Red Hat Enterprise Linux 7 und darauf basierende Ableger, wie beispielsweise CentOS 7, betrifft.

Übersetzungen: