From c04c1509f93544da074c68142e0f4e7d537133e2 Mon Sep 17 00:00:00 2001 From: Holger Lindemann Date: Wed, 7 Jan 2009 16:13:03 +0000 Subject: [PATCH] Script verschieben --- sql/inst_postgres.sh | 185 ------------------------------------------- 1 file changed, 185 deletions(-) delete mode 100755 sql/inst_postgres.sh diff --git a/sql/inst_postgres.sh b/sql/inst_postgres.sh deleted file mode 100755 index 84c0c9d35..000000000 --- a/sql/inst_postgres.sh +++ /dev/null @@ -1,185 +0,0 @@ -#!/bin/bash -#set -x -function writeln() -{ - tput cup $1 $2 # Cursor positionieren - tput el # Rest der Zeile löschen - shift 2 # Parameter für die Koordinaten entfernen - echo -n $*" " # Rest der Parameterliste ausgeben -} - -tput clear - -#Als root anmelden -if [ `id -u` -gt 0 ]; then echo "Bitte als root anmelden"; exit 1; fi - -writeln 1 1 PostgreSQL fuer Lx-Office vorbereiten -writeln 2 1 1. plpgsql.so suchen -PLPGSQL="" -#Datei plpgsql.so suchen - -#Mit Paketmanager (RPM oder APT) suchen -#PLPGSQL=`dpkg -L postgresql | grep plpgsql.so` -#PLPGSQL=`rpm -q --list postgres | grep plpgsql.so` - -if [ "$PLPGSQL#" == "#" ]; then - #Probleme mit Paketmanager, dann zunaechst mit locate, geht schneller - writeln 3 3 --locate - tmp=`locate plpgsql.so 2>/dev/null` - PLPGSQL=`echo $tmp | cut -d " " -f 1` -fi -if [ "$PLPGSQL#" == "#" ]; then - #noch nicht gefunden, also mit find suchen - writeln 3 15 --find /usr/lib - tmp=`find /usr/lib -name plpgsql.so -type f` - PLPGSQL=`echo $tmp | cut -d " " -f 1` -fi -if [ "$PLPGSQL#" == "#" ]; then - while :; do - writeln 4 1 'plpgsql.so' nicht gefunden. - tput bold - writeln 5 1 "Bitte den Pfad eingeben: " - tput rmso - read PLPGSQL - [ "$PLPGSQL#" != "#" ] && [ -f $PLPGSQL ] && break - tput bel - done -fi -writeln 6 1 ok. 'plpgsql.so' gefunden - -#Kann der User postgres die db erreichen -cnt=`ps aux | grep postgres | wc -l` -if [ $cnt -eq 0 ]; then - tput bel - tput bold - echo Die postgreSQL-Datebbank ist nicht gestartet - tput rmso - exit 1 -fi -v7=`su postgres -c "echo 'select version()' | psql template1 2>/dev/null | grep -E "[Ss][Qq][Ll][[:space:]]+7\.[0-9]\.[0-9]" | wc -l"` -v8=`su postgres -c "echo 'select version()' | psql template1 2>/dev/null | grep -E "[Ss][Qq][Ll][[:space:]]+8\.[0-9]\.[0-9]" | wc -l"` -#cnt=`echo $v7 + $v8 | bc -l` -if [ $v8 -eq 0 ]; then - if [ $v7 -eq 0 ]; then - tput bel - tput bold - echo User postgres konnte die Datenbank nicht ansprechen - tput rmso - exit 1; - else - tput clear - writeln 1 1 Datenbank Version 7x konnte erreicht werden. - fi -else - tput clear - writeln 1 1 Datenbank Verion 8x konnte erreicht werden. -fi - -echo "CREATE FUNCTION plpgsql_call_handler() RETURNS language_handler" > lxdbinst.sql -echo "AS '$PLPGSQL', 'plpgsql_call_handler'" >> lxdbinst.sql -echo "LANGUAGE c;" >> lxdbinst.sql -echo "CREATE PROCEDURAL LANGUAGE plpgsql HANDLER plpgsql_call_handler;" >> lxdbinst.sql - -writeln 2 1 Datebankbenutzer einrichten -tput bold -writeln 3 1 "Bitte den Datenbank-Benutzernamen eingeben [lxoffice]: " -tput rmso -read LXOUSER -if [ "$LXOUSER#" == "#" ]; then LXOUSER="lxoffice"; fi -while :; do - tput bold - writeln 4 1 "Bitte ein Kennwort eingeben : " - tput rmso - read USRPWD - if ! [ "$USRPWD#" == "#" ]; then break; fi - tput bel -done; - -echo "CREATE USER $LXOUSER with CREATEDB ;" >> lxdbinst.sql -echo "ALTER USER $LXOUSER PASSWORD '$USRPWD';" >> lxdbinst.sql -echo "UPDATE pg_language SET lanpltrusted = true WHERE lanname = 'plpgsql';" >> lxdbinst.sql - -su postgres -c "psql template1 < lxdbinst.sql" - -echo "Fehlermeldungen die 'already exists' enthalten koennen ignoriert werden" - -writeln 11 1 Datenbank fuer Lx-Office vorbereitet - -writeln 12 1 Datenbankberechtigung einrichten -#wo ist die pg_hba.conf -writeln 13 3 --find erst /etc dann /var/lib -tmp=`find /etc -name pg_hba.conf -type f` -[ "$tmp#" == "#" ] && tmp=`find /var/lib -name pg_hba.conf -type f` -PGHBA=`echo $tmp | cut -d " " -f 1` - -if [ "$PGHBA#" == "#" ]; then - while :; do - writeln 14 1 'pg_hba.conf' nicht gefunden. - tput bold - writeln 15 1 "Bitte den Pfad eingeben: " - tput rmso - read PGHBA - [ "$PGHBA#" != "#" ] && [ -f $PGHBA ] && break - tput bel - done -fi -writeln 16 1 ok. 'pg_hba.conf' gefunden - -cnt=`grep $LXOUSER $PGHBA | wc -l ` - -if [ $cnt -eq 0 ]; then - mv $PGHBA $PGHBA.org - echo "local all $LXOUSER password" > $PGHBA - echo "host all $LXOUSER 127.0.0.1 255.255.255.255 password" >> $PGHBA - cat $PGHBA.org >> $PGHBA -fi - -CONFDIR=`dirname $PGHBA` - -#postgresql.conf anpassen, liegt vermutlich im gleichen Verzeichnis wie pg_hba.conf -if ! [ -f $CONFDIR/postgresql.conf ]; then - #doch nicht da, dann fragen - while :; do - writeln 13 1 'postgresql.conf' nicht gefunden. - tput bold - writeln 14 1 "Bitte den Pfad eingeben: " - tput rmso - read PGCONF - [ "$PGCONF#" != "#" ] && [ -f $PGCONF ] && break - tput bel - done - CONFDIR=`dirname $PGCONF` -fi - -mv $CONFDIR/postgresql.conf $CONFDIR/postgresql.conf.org -if ! [ $v7 -eq 0 ]; then - #Nur bei der V7.x: tcpip_socket = true - sed 's/^.*tcpip_socket.*/tcpip_socket = true/i' $CONFDIR/postgresql.conf.org > $CONFDIR/postgresql.conf - cnt=`grep tcpip_socket $CONFDIR/postgresql.conf | wc -l` - if [ $cnt -eq 0 ]; then - cp $CONFDIR/postgresql.conf.org $CONFDIR/postgresql.conf - echo "tcpip_socket = true" >> $CONFDIR/postgresql.conf - fi -else - #Bei der V8.x OID einschalten. - sed 's/^.*default_with_oids.*/default_with_oids = true/i' $CONFDIR/postgresql.conf.org > $CONFDIR/postgresql.conf - cnt=`grep default_with_oids $CONFDIR/postgresql.conf | wc -l` - if [ $cnt -eq 0 ]; then - cp $CONFDIR/postgresql.conf.org $CONFDIR/postgresql.conf - echo "default_with_oids = true" >> $CONFDIR/postgresql.conf - fi -fi - - -tmp=`ls /etc/init.d/postgres*` -PGSQL=`echo $tmp | cut -d " " -f 1` - -writeln 18 1 Datenbank neu starten -$PGSQL restart - -tput bold -tput smso -writeln 20 12 ok. Das solltes es gewesen sein. -tput rmso -tput rmso -echo -- 2.20.1