PostgreSQL Server startet nicht auf Ubuntu 10.4 Server

Auf einem frischen Virtual Server unter Ubuntu 10.4 („Lucid“) soll der Caldav-Server „Davical“ laufen. Die Installation des Pakets davical aus dem Repository löst die Abhängigkeiten der folgenden Pakete auf:

davical (0.9.9.4-1), libnet-daemon-perl (0.43-1), postgresql-8.4 (8.4.8-0ubuntu0.10.04), libyaml-syck-perl (1.07-1build1), php5 (5.3.2-1ubuntu4.9), libdbi-perl (1.609-1build1), libapr1 (1.3.8-1ubuntu0.3), libapache2-mod-php5 (5.3.2-1ubuntu4.9), libaprutil1-ldap (1.3.9+dfsg-3ubuntu0.10.04.1), xml-core (0.13), apache2-mpm-prefork (2.2.14-5ubuntu8.4), libexpat1 (2.0.1-7ubuntu1), apache2-utils (2.2.14-5ubuntu8.4), apache2.2-common (2.2.14-5ubuntu8.4), libawl-php (0.46-1), libaprutil1-dbd-sqlite3 (1.3.9+dfsg-3ubuntu0.10.04.1), apache2.2-bin (2.2.14-5ubuntu8.4), ssl-cert (1.0.23ubuntu2), postgresql-common (106ubuntu1), libxml2 (2.7.6.dfsg-1ubuntu1.2), postgresql (8.4.8-0ubuntu0.10.04), postgresql-client-8.4 (8.4.8-0ubuntu0.10.04), php5-pgsql (5.3.2-1ubuntu4.9), sgml-base (1.26), libplrpc-perl (0.2020-2), libdbd-pg-perl (2.16.1-1), postgresql-client-common (106ubuntu1), libpq5 (8.4.8-0ubuntu0.10.04), libaprutil1 (1.3.9+dfsg-3ubuntu0.10.04.1), php5-common (5.3.2-1ubuntu4.9), libyaml-perl (0.71-1)

Dabei kam es zu zahlreichen Fehlern, weil die Locale des Servers nicht mit den Installationsskripten zusammenpasste:

 (Ausschnitt) 
Setting up postgresql-common (106ubuntu1) ...
perl: warning: Setting locale failed.
perl: warning: Please check that your locale settings:
    LANGUAGE = (unset),
    LC_ALL = (unset),
    LANG = "de_DE.UTF-8"
    are supported and installed on your system.
perl: warning: Falling back to the standard locale ("C").
locale: Cannot set LC_CTYPE to default locale: No such file or directory
locale: Cannot set LC_MESSAGES to default locale: No such file or directory
locale: Cannot set LC_ALL to default locale: No such file or directory
perl: warning: Setting locale failed.
perl: warning: Please check that your locale settings:
    LANGUAGE = (unset),
    LC_ALL = (unset),
    LANG = "de_DE.UTF-8"
    are supported and installed on your system.
perl: warning: Falling back to the standard locale ("C").
perl: warning: Setting locale failed.
perl: warning: Please check that your locale settings:
    LANGUAGE = (unset),
    LC_ALL = (unset),
    LANG = "de_DE.UTF-8"
    are supported and installed on your system.
perl: warning: Falling back to the standard locale ("C").
Adding user postgres to group ssl-cert
perl: warning: Setting locale failed.
perl: warning: Please check that your locale settings:
    LANGUAGE = (unset),
    LC_ALL = (unset),
    LANG = "de_DE.UTF-8"
    are supported and installed on your system.
perl: warning: Falling back to the standard locale ("C").
perl: warning: Setting locale failed.
perl: warning: Please check that your locale settings:
    LANGUAGE = (unset),
    LC_ALL = (unset),
    LANG = "de_DE.UTF-8"
    are supported and installed on your system.
perl: warning: Falling back to the standard locale ("C").
usw.

Der Start des PostgreSQL-Servers gelang nicht, ob es eine Fehlermeldung gab, weiß ich nicht mehr.

Nach Entfernen der genannten Pakete, Umstellen der Locale:

export LANGUAGE=de_DE.UTF-8
export LANG=de_DE.UTF-8
locale-gen de_DE.UTF-8
export LC_ALL=de_DE.UTF-8
dpkg-reconfigure locales

lief die Installation ohne Fehlermeldung durch. Der PostgreSQL-Server startet jedoch nicht:

lammbader@server:~# /etc/init.d/postgresql-8.4 start
 * Starting PostgreSQL 8.4 database server
 lammbader@server:~# psql
psql: could not connect to server: No such file or directory
    Is the server running locally and accepting
    connections on Unix domain socket "/var/run/postgresql/.s.PGSQL.5432"?

Das Verzeichnis /etc/postgresql/8.4/main/ war leer. Wenn ich es richtig verstehe, sind dort nach der Installation die Konfigurationsdaten abgelegt? Ich habe diese händisch von einer lokalen Installation auf den Server kopiert, dies ergibt nur eine unspezifische Fehlermeldung beim Start des Servers:

lammbader@server:~#/etc/init.d/postgresql-8.4 start
 * Starting PostgreSQL 8.4 database server
 * Error: could not exec /usr/lib/postgresql/8.4/bin/pg_ctl /usr/lib/postgresql/8.4/bin/pg_ctl start -D /var/lib/postgresql/8.4/main -l /var/log/postgresql/postgresql-8.4-main.log -s -o  -c config_file="/etc/postgresql/8.4/main/postgresql.conf" :

Kann dies Verhalten auf die missglückte Installation am Anfang zurückzuführen sein? Was könnte ich tun?

Ich hab da mal was geschrieben …

locales on Ubuntu - ads’ corner

Funktioniert. Vielen Dank!

Nun läuft alles zufriedenstellend. Vielen Dank noch einmal!

Ich war allerdings nicht in der Lage, Veränderungen, die durch die erste Installation mit der falschen/ungenügenden locale entstanden waren, von Hand wieder geradezubiegen.

Weil ich mir nicht anders zu helfen wusste, habe ich den ganzen Server neu aufgesetzt. Das war in dem Fall nicht schlimm, weil ich den Vserver ganz neu zu diesem Zweck angemietet hatte. Wäre es ein bestehendes System gewesen, wäre das nicht oder nicht so leicht möglich gewesen.

In dem Tutorial in der c’t, nach dem ich vorgegangen bin, wird das Problem kurz erwähnt, aber dass es auf den Ubuntu-Server zutrifft, war nicht zu erkennen.

Jedenfalls, ich würde den Bug gern melden. Auf welcher Seite liegt denn das Problem, bei Ubuntu, bei PostgreSQL oder bei davical?

Gruß Tobias

Bei Ubuntu, PostgreSQL kann nur die Locale nutzen, die da sind. Ist aber selbst nicht für die Einrichtung der korrekten Locale zuständig.