postgresql-10-check-db-dir Datei fehlt

Hi,

ich habe mich ein wenig damit beschäftigt die Installation eines PostgeSQL Servers an einige Standards des Unternehems anzupassen (Die Systeme sind RHEL7 Systeme zur Zeit: Red Hat Enterprise Linux Server release 7.5 (Maipo)).
Ich bin also dem Chapter 16 (Installation from Sources) der Dokumentation gefolgt und hatte soweit auch keine Probleme. - https://www.postgresql.org/docs/10/static/install-procedure.html

Ein für uns angepasstes RPM habe ich zum Schluss erstellt und das lässt sich auch soweit nutzen und bisher treten an keiner Stelle Fehler auf. Nun wollte ich für das saubere Starten und Stoppen von PostgreSQL einen Systemd-Service einrichten und habe an diversen Stellen folgende Zeile im service file gefunden:

ExecStartPre=/usr/pgsql-10/bin/postgresql-10-check-db-dir ${PGDATA}

Diese Zeile enthält z.B. auch das Service-File (/usr/lib/systemd/system/postgresql-10.service) was erstellt wird, wenn man PostgreSQL via dem offiziell bereitgestelltem RPM installiert (Abschnitt “PostgreSQL Yum Repository”: PostgreSQL: Linux downloads (Red Hat family)).

Nun ist diese Datei (postgresql-10-check-db-dir) bei meiner “Installation from Sources” Variante nicht entstanden und ich frage mich, wo es zu finden ist und was ich beim configure/make Prozess beachten muss, damit es zum Schluss da ist. Ich habe dazu irgendwie bisher nichts gefunden.
Es ist wahrscheinlich nicht lebenswichtig, aber die Abstinenz des Files wundert mich ein wenig. (/usr/pgsql-10/bin/postgresql-10-setup fehlt im Übrigen auch … sonst ist auf den ersten Blick alles vorhanden)

Für ein paar Aufklärende Worte sag ich schon mal vielen Dank.

LG

PS.:
Im Prinzip ist es ein überschaubar großes Shellscript mit folgender Beschreibung:

This script verifies that the postgresql data directory has been correctly

initialized. We do not want to automatically initdb it, because that has

a risk of catastrophic failure (ie, overwriting a valuable database) in

corner cases, such as a remotely mounted database on a volume that’s a

bit slow to mount. But we can at least emit a message advising newbies

what to do.

Vielleicht noch zur Ergänzung (aber das wissen die, die sich damit beschäftigen sicherlich auch so):
Beide Skripte die bei mir fehlen (Standard Pfad der 10ner Version: /usr/pgsql-10/bin/), gehören irgendwie zum Upgrade des DB clusters auf ein neueres Major-Release.

Zum einen ‘postgresql-10-check-db-dir’ und der dazugehörige Eintrag im systemd-service-file, dass wohl verhindern soll, dass ein DB cluster eines älteren releases (z.B. 9.x) beim Start mit Binaries eines neueren Releases (z.B. 10.x) einfach so initialisiert wird.

Zum anderen ‘postgresql-10-setup’, dass wohl dann beim Upgrade selbst unterstützt.

Ich könnte mir dir Skripte auch einfach aus einer Installation mit dem offiziellen RPM rüber kopieren, aber irgendwie habe ich bedenken, dass die Dateien fehlen, da ich beim Build-Prozess etwas falsch gemacht habe. Das will ich eigentlich nur ausschließen.

Hallo,

ich kann nur soviel sagen, das diese Datei in der Standard Ubuntu Installation nicht vorhanden ist.
Hier eine Liste der enthaltenen Dateien.

/usr
/usr/lib
/usr/lib/postgresql
/usr/lib/postgresql/10
/usr/lib/postgresql/10/bin
/usr/lib/postgresql/10/bin/initdb
/usr/lib/postgresql/10/bin/oid2name
/usr/lib/postgresql/10/bin/pg_archivecleanup
/usr/lib/postgresql/10/bin/pg_controldata
/usr/lib/postgresql/10/bin/pg_ctl
/usr/lib/postgresql/10/bin/pg_resetwal
/usr/lib/postgresql/10/bin/pg_rewind
/usr/lib/postgresql/10/bin/pg_standby
/usr/lib/postgresql/10/bin/pg_test_fsync
/usr/lib/postgresql/10/bin/pg_test_timing
/usr/lib/postgresql/10/bin/pg_upgrade
/usr/lib/postgresql/10/bin/pg_waldump
/usr/lib/postgresql/10/bin/pgbench
/usr/lib/postgresql/10/bin/postgres
/usr/lib/postgresql/10/bin/postmaster
/usr/lib/postgresql/10/bin/vacuumlo
/usr/lib/postgresql/10/lib
/usr/lib/postgresql/10/lib/_int.so
/usr/lib/postgresql/10/lib/adminpack.so
/usr/lib/postgresql/10/lib/amcheck.so
/usr/lib/postgresql/10/lib/ascii_and_mic.so
/usr/lib/postgresql/10/lib/auth_delay.so
/usr/lib/postgresql/10/lib/auto_explain.so
/usr/lib/postgresql/10/lib/autoinc.so
/usr/lib/postgresql/10/lib/bloom.so
/usr/lib/postgresql/10/lib/btree_gin.so
/usr/lib/postgresql/10/lib/btree_gist.so
/usr/lib/postgresql/10/lib/chkpass.so
/usr/lib/postgresql/10/lib/citext.so
/usr/lib/postgresql/10/lib/cube.so
/usr/lib/postgresql/10/lib/cyrillic_and_mic.so
/usr/lib/postgresql/10/lib/dblink.so
/usr/lib/postgresql/10/lib/dict_int.so
/usr/lib/postgresql/10/lib/dict_snowball.so
/usr/lib/postgresql/10/lib/dict_xsyn.so
/usr/lib/postgresql/10/lib/earthdistance.so
/usr/lib/postgresql/10/lib/euc2004_sjis2004.so
/usr/lib/postgresql/10/lib/euc_cn_and_mic.so
/usr/lib/postgresql/10/lib/euc_jp_and_sjis.so
/usr/lib/postgresql/10/lib/euc_kr_and_mic.so
/usr/lib/postgresql/10/lib/euc_tw_and_big5.so
/usr/lib/postgresql/10/lib/file_fdw.so
/usr/lib/postgresql/10/lib/fuzzystrmatch.so
/usr/lib/postgresql/10/lib/hstore.so
/usr/lib/postgresql/10/lib/insert_username.so
/usr/lib/postgresql/10/lib/isn.so
/usr/lib/postgresql/10/lib/latin2_and_win1250.so
/usr/lib/postgresql/10/lib/latin_and_mic.so
/usr/lib/postgresql/10/lib/libpqwalreceiver.so
/usr/lib/postgresql/10/lib/lo.so
/usr/lib/postgresql/10/lib/ltree.so
/usr/lib/postgresql/10/lib/moddatetime.so
/usr/lib/postgresql/10/lib/pageinspect.so
/usr/lib/postgresql/10/lib/passwordcheck.so
/usr/lib/postgresql/10/lib/pg_buffercache.so
/usr/lib/postgresql/10/lib/pg_freespacemap.so
/usr/lib/postgresql/10/lib/pg_prewarm.so
/usr/lib/postgresql/10/lib/pg_stat_statements.so
/usr/lib/postgresql/10/lib/pg_trgm.so
/usr/lib/postgresql/10/lib/pg_visibility.so
/usr/lib/postgresql/10/lib/pgcrypto.so
/usr/lib/postgresql/10/lib/pgoutput.so
/usr/lib/postgresql/10/lib/pgrowlocks.so
/usr/lib/postgresql/10/lib/pgstattuple.so
/usr/lib/postgresql/10/lib/pgxml.so
/usr/lib/postgresql/10/lib/plpgsql.so
/usr/lib/postgresql/10/lib/postgres_fdw.so
/usr/lib/postgresql/10/lib/refint.so
/usr/lib/postgresql/10/lib/seg.so
/usr/lib/postgresql/10/lib/sepgsql.so
/usr/lib/postgresql/10/lib/sslinfo.so
/usr/lib/postgresql/10/lib/tablefunc.so
/usr/lib/postgresql/10/lib/tcn.so
/usr/lib/postgresql/10/lib/test_decoding.so
/usr/lib/postgresql/10/lib/timetravel.so
/usr/lib/postgresql/10/lib/tsm_system_rows.so
/usr/lib/postgresql/10/lib/tsm_system_time.so
/usr/lib/postgresql/10/lib/unaccent.so
/usr/lib/postgresql/10/lib/utf8_and_ascii.so
/usr/lib/postgresql/10/lib/utf8_and_big5.so
/usr/lib/postgresql/10/lib/utf8_and_cyrillic.so
/usr/lib/postgresql/10/lib/utf8_and_euc2004.so
/usr/lib/postgresql/10/lib/utf8_and_euc_cn.so
/usr/lib/postgresql/10/lib/utf8_and_euc_jp.so
/usr/lib/postgresql/10/lib/utf8_and_euc_kr.so
/usr/lib/postgresql/10/lib/utf8_and_euc_tw.so
/usr/lib/postgresql/10/lib/utf8_and_gb18030.so
/usr/lib/postgresql/10/lib/utf8_and_gbk.so
/usr/lib/postgresql/10/lib/utf8_and_iso8859.so
/usr/lib/postgresql/10/lib/utf8_and_iso8859_1.so
/usr/lib/postgresql/10/lib/utf8_and_johab.so
/usr/lib/postgresql/10/lib/utf8_and_sjis.so

Daher meine Vermutung das es sich um eine Distribution spezifisiche Datei handelt.

Gruß frastr

Wie in meinem letzten Post erwähnt scheint es sich, vereinfacht gesagt, um eine Art doppelten Boden / “Upgrade-Warnung” für Major-Release-Sprünge zu handeln.

@frastr
Kann schon sein, dass die Dateien nicht auf allen Linux-Distros (auch nicht mit der Standard Packet-Installation) entstehen, aber die Unterscheidung würde mich etwas wundern, denn als völlig unützt würde ich dieden Schutzmechanimus nun auch nicht bezeichnen.

Ich werde das jetzt vorerst ignorieren und den ExecStartPre Eintrag in meinem für PostgreSQL angelegten systemd-Service-File erstmal weglassen.

LG

wenn du das schon dir alles baust: ich empfehle, das initdb dann gleich mit Checksummen zu machen. Nur so als Hint…
(wünsche mir, daß das mal Default wird…)