Projekt

Allgemein

Profil

« Zurück | Weiter » 

Revision 1e151777

Von Holger Lindemann vor fast 14 Jahren hinzugefügt

  • ID 1e1517770b9c404844212bca84dc35b9e3bdfdbd
  • Vorgänger 5e7bb78a
  • Nachfolger 06652f19

Anpassungen am Installationsscript

Unterschiede anzeigen:

DEBIAN/DEBIAN/control
5 5
Priority: optional
6 6
Installed-Size: 0
7 7
Maintainer: Holger Lindemann <hli@lx-system.de>, Adrian Weibel <adrian_weibel@web.de>
8
Depends: patch, apache2 | apache | lighttpd, postgresql | postgresql-8.2 | postgresql-8.3 | postgresql-8.4, libdbi-perl, libdbd-pg-perl, libpg-perl, libarchive-zip-perl, libyaml-perl, libio-stringy-perl, libtemplate-perl, libpdf-api2-perl, libcgi-ajax-perl, liblist-moreutils-perl, libxml-writer-perl, libtext-csv-xs-perl | libtext-csv-perl, liburi-perl, libdatetime-perl, libtext-iconv-perl, libclass-accessor-perl,libemail-address-perl,libparent-perl
9
Suggests: tetex-base, tetex-bin, tetex-extra, xpdf | evince | okular, libfcgi-perl, libapache2-mod-fastcgi
8
Depends: patch, apache2 | apache | lighttpd, postgresql-8.2 | postgresql-8.3 | postgresql-8.4, libdbi-perl, libdbd-pg-perl, libpg-perl, libarchive-zip-perl, libyaml-perl, libio-stringy-perl, libtemplate-perl, libpdf-api2-perl, libcgi-ajax-perl, liblist-moreutils-perl, libxml-writer-perl, libtext-csv-xs-perl | libtext-csv-perl, liburi-perl, libdatetime-perl, libtext-iconv-perl, libclass-accessor-perl,libemail-address-perl,libparent-perl, librose-object-perl, librose-db-perl, librose-db-object-perl
9
Suggests: tetex-base | texlive-latex-base, tetex-bin | texlive-base-bin , tetex-extra | texlive-latex-extra, xpdf | evince | okular, libfcgi-perl, libapache2-mod-fastcgi
10 10
Homepage: http://www.lx-office.org
11 11
Description: Extended double entry accounting system for the german market.
12 12
 Lx-Office is derived from sql-ledger and rewritten
DEBIAN/DEBIAN/preinst
2 2
#Nur für das Update von einer 2.6.0 nötig, da hier gnadenlos gelöscht wird
3 3
set -e
4 4
echo " ! "`date`" Preinst $1 !" >> /tmp/lxo-erp.log
5

  
5 6
if [ "$1" = "upgrade" ]; then
6
    echo "#!/bin/sh" > /var/lib/dpkg/info/lx-office-erp.postrm
7
    echo "set -e" >> /var/lib/dpkg/info/lx-office-erp.postrm
8
    echo "echo ' ! '`date`' postrm2 $1 !'" >> /var/lib/dpkg/info/lx-office-erp.postrm
9
    chmod +x /var/lib/dpkg/info/lx-office-erp.postrm
7
    cnt=`grep -c '\-e /usr/lib/lx-office-erp' /var/lib/dpkg/info/lx-office-erp.postrm`
8
    if ! [ $cnt == 0 ]; then
9
        echo "#!/bin/sh" > /var/lib/dpkg/info/lx-office-erp.postrm
10
        echo "set -e" >> /var/lib/dpkg/info/lx-office-erp.postrm
11
        echo "echo ' ! '`date`' postrm2 $1 !'" >> /var/lib/dpkg/info/lx-office-erp.postrm
12
        chmod +x /var/lib/dpkg/info/lx-office-erp.postrm
13
    fi
10 14
fi
11 15

  
scripts/inst_postgres.sh
18 18
PLPGSQL=""
19 19
#Datei plpgsql.so suchen
20 20

  
21
#Mit Paketmanager (RPM oder APT) suchen
22
#PLPGSQL=`dpkg -L postgresql | grep plpgsql.so`
21
POSTGRESQL=`dpkg -l | grep -E "postgresql-[0-9]" | cut -d" " -f3 | sort -r | head -1 -`
22

  
23
#Mit Paketmanager (Apt) suchen
24
if [ "$POSTGRESQL#" == "#" ]; then
25
    writeln 1 1 $FEHLER
26
    writeln 2 1 Keine PostgreSQL mit Paketmanager installiert
27
    writeln 3 1 Datenbank bitte manuell einrichten.
28
    exit 0
29
else
30
   PLPGSQL=`dpkg -L postgresql-8.3 | grep plpgsql.so`
31
fi
32

  
33
#Mit Paketmanager (RPM) suchen ?
23 34
#PLPGSQL=`rpm -q --list postgres | grep plpgsql.so`
24 35

  
25 36
if [ "$PLPGSQL#" == "#" ]; then
26 37
	#Probleme mit Paketmanager, dann zunaechst mit locate, geht schneller
38
	updatedb
27 39
	writeln 3 3 --locate
28 40
	tmp=`locate plpgsql.so 2>/dev/null`
29 41
	PLPGSQL=`echo $tmp | cut -d " " -f 1`
......
56 68
	tput rmso
57 69
	exit 1
58 70
fi
59
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"`
60
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"`
61
#cnt=`echo  $v7 + $v8 | bc -l`
71
v8=`su postgres -c "echo 'select version()' | psql template1 2>/dev/null | grep -E "[Ss][Qq][Ll][[:space:]]+8\.[2-9]\.[0-9]" | wc -l"`
62 72
if [ $v8 -eq 0 ]; then 
63
	if [ $v7 -eq 0 ]; then
64
		tput bel
65
		tput bold
66
		echo User postgres konnte die Datenbank nicht ansprechen
67
		tput rmso
68
		exit 1; 
69
	else
70
		tput clear
71
		writeln 1 1 Datenbank Version 7x konnte erreicht werden.
72
	fi
73
	tput bel
74
	tput bold
75
	echo User postgres konnte die Datenbank 8.2.x -  8.9.x nicht ansprechen
76
	tput rmso
77
	exit 1; 
73 78
else
74 79
	tput clear
75
	writeln 1 1 Datenbank Version 8x konnte erreicht werden.
80
	writeln 1 1 Datenbank Version 8.2.x - 8.9.x konnte erreicht werden.
76 81
fi
77 82

  
78 83
echo "CREATE FUNCTION plpgsql_call_handler() RETURNS language_handler" > lxdbinst.sql
......
108 113
writeln 12 1 Datenbankberechtigung einrichten
109 114
#wo ist die pg_hba.conf
110 115
writeln 13 3 --find erst /etc dann /var/lib
111
tmp=`find /etc -name pg_hba.conf -type f`
116
tmp=`find /etc/postgresql -name pg_hba.conf -type f`
112 117
[ "$tmp#" == "#" ] && tmp=`find /var/lib -name  pg_hba.conf -type f`
113 118
PGHBA=`echo $tmp | cut -d " " -f 1`
114 119

  
......
152 157
fi
153 158

  
154 159
mv $CONFDIR/postgresql.conf $CONFDIR/postgresql.conf.org
155
if ! [ $v7 -eq 0 ]; then 
156
	#Nur bei der V7.x:  tcpip_socket = true
157
	sed 's/^.*tcpip_socket.*/tcpip_socket = true/i' $CONFDIR/postgresql.conf.org > $CONFDIR/postgresql.conf
158
	cnt=`grep tcpip_socket $CONFDIR/postgresql.conf | wc -l`
159
	if [ $cnt -eq 0 ]; then
160
		cp $CONFDIR/postgresql.conf.org $CONFDIR/postgresql.conf
161
		echo "tcpip_socket = true" >> $CONFDIR/postgresql.conf
162
	fi
163
else 
164
	#Bei der V8.x OID einschalten.
165
	sed 's/^.*default_with_oids.*/default_with_oids = true/i' $CONFDIR/postgresql.conf.org > $CONFDIR/postgresql.conf
166
	cnt=`grep default_with_oids $CONFDIR/postgresql.conf | wc -l`
167
	if [ $cnt -eq 0 ]; then
168
		cp $CONFDIR/postgresql.conf.org $CONFDIR/postgresql.conf
169
		echo "default_with_oids = true" >> $CONFDIR/postgresql.conf
170
	fi
160
#Bei der V8.x OID einschalten.
161
sed 's/^.*default_with_oids.*/default_with_oids = true/i' $CONFDIR/postgresql.conf.org > $CONFDIR/postgresql.conf
162
cnt=`grep default_with_oids $CONFDIR/postgresql.conf | wc -l`
163
if [ $cnt -eq 0 ]; then
164
	cp $CONFDIR/postgresql.conf.org $CONFDIR/postgresql.conf
165
	echo "default_with_oids = true" >> $CONFDIR/postgresql.conf
171 166
fi
172 167

  
173 168
 
174
tmp=`ls /etc/init.d/postgres*`
169
tmp=`ls -r1 /etc/init.d/postgres*`
175 170
PGSQL=`echo $tmp | cut -d " " -f 1`
176 171

  
177 172
writeln 18 1 Datenbank neu starten
scripts/inst_postgres_deb.sh
1 1
#!/bin/bash
2
#set -x
3

  
4 2
# e = exit on error
5 3
set -e
6 4
# x = xtrace
7
#set -x
5
set -x
8 6

  
7
FEHLER="Achtung!! Es hat ein Problem gegeben"
8
ERRCNT=0
9 9
source /usr/share/debconf/confmodule
10 10

  
11

  
12
function writeln()
13
{
14
   tput cup $1 $2  # Cursor positionieren
15
   tput el         # Rest der Zeile löschen
16
   shift 2         # Parameter für die Koordinaten entfernen
17
   echo -n $*" "   # Rest der Parameterliste ausgeben
18
}
19

  
20
#tput clear
21

  
22 11
#Als root anmelden
23 12
if [ `id -u` -gt 0 ]; then echo "Bitte als root anmelden"; exit 1; fi
13
POSTGRESQL=`dpkg -l | grep -E "postgresql-[0-9]" | cut -d" " -f3 | sort -r | head -1 -`
24 14

  
25
#writeln 1 1 PostgreSQL fuer Lx-Office vorbereiten
26
#writeln 2 1 1. plpgsql.so suchen
27
PLPGSQL=""
28 15
#Datei plpgsql.so suchen
29

  
30
#Mit Paketmanager (RPM oder APT) suchen
31
#PLPGSQL=`dpkg -L postgresql | grep plpgsql.so`
32
#PLPGSQL=`rpm -q --list postgres | grep plpgsql.so`
16
#Mit Paketmanager  suchen
17
if [ "$POSTGRESQL#" == "#" ]; then
18
    echo $FEHLER
19
    echo Keine PostgreSQL mit Paketmanager installiert
20
    echo Datenbank bitte manuell einrichten.
21
    exit 0
22
else
23
   PLPGSQL=`dpkg -L postgresql-8.3 | grep plpgsql.so`
24
fi
33 25

  
34 26
if [ "$PLPGSQL#" == "#" ]; then
35
	#Probleme mit Paketmanager, dann zunaechst mit locate, geht schneller
36
#	writeln 3 3 --locate
37
	tmp=`locate plpgsql.so 2>/dev/null`
38
	PLPGSQL=`echo $tmp | cut -d " " -f 1`
27
    #Probleme mit Paketmanager, dann zunaechst mit locate, geht schneller
28
    updatedb
29
    tmp=`locate plpgsql.so 2>/dev/null`
30
    PLPGSQL=`echo $tmp | cut -d " " -f 1`
39 31
fi
40 32
if [ "$PLPGSQL#" == "#" ]; then
41
	#noch nicht gefunden, also mit find suchen
42
#	writeln 3 15 --find /usr/lib
43
	tmp=`find /usr/lib -name  plpgsql.so -type f`
44
	PLPGSQL=`echo $tmp | cut -d " " -f 1`
33
    #noch nicht gefunden, also mit find suchen
34
    tmp=`find /usr/lib -name  plpgsql.so -type f`
35
    PLPGSQL=`echo $tmp | cut -d " " -f 1`
45 36
fi	
46 37
if [ "$PLPGSQL#" == "#" ]; then
47
	while :; do
48
#		writeln 4 1 'plpgsql.so' nicht gefunden.
49
#		tput bold
50
#   		writeln 5 1 "Bitte den Pfad eingeben: "
51
#		tput rmso
52
#   		read PLPGSQL
53
   		[ "$PLPGSQL#" != "#" ] && [ -f $PLPGSQL ] && break
54
 #  		tput bel
55
	done
38
    echo $FEHLER
39
    echo  'plpgsql.so' nicht gefunden.
40
    echo Datenbank manuell einrichten.
41
    exit 0
56 42
fi
57
#writeln 6 1 ok. 'plpgsql.so' gefunden
58 43

  
59 44
#Kann der User postgres die db erreichen
60 45
cnt=`ps aux | grep postgres | wc -l`
61 46
if [ $cnt -eq 0 ]; then
62
#	tput bel
63
#	tput bold
64
	echo Die postgreSQL-Datebbank ist nicht gestartet!
65
#	tput rmso
66
	exit 1
47
    echo $FEHLER
48
    echo Die postgreSQL-Datebbank ist nicht gestartet!
49
    echo Datenbank manuell einrichten.
50
    exit 0
67 51
fi
68
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"`
69
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"`
70
#cnt=`echo  $v7 + $v8 | bc -l`
52

  
53
v8=`su postgres -c "echo 'select version()' | psql template1 2>/dev/null | grep -E "[Ss][Qq][Ll][[:space:]]+8\.[2-9]\.[0-9]" | wc -l"`
71 54
if [ $v8 -eq 0 ]; then 
72
	if [ $v7 -eq 0 ]; then
73
#		tput bel
74
#		tput bold
75
		echo User postgres konnte die Datenbank nicht ansprechen
76
#		tput rmso
77
		exit 1; 
78
	else
79
		# do nothing
80
		echo ""
81

  
82
#		tput clear
83
#		writeln 1 1 Datenbank Version 7x konnte erreicht werden.
84
	fi
85
else
86
	# do nothing
87
	echo ""
88
#	tput clear
89
#	writeln 1 1 Datenbank Version 8x konnte erreicht werden.
55
    echo $FEHLER
56
    echo Datenbank Version 8x konnte erreicht werden.
57
    exit 0
90 58
fi
91 59

  
92 60
echo "CREATE FUNCTION plpgsql_call_handler() RETURNS language_handler" > lxdbinst.sql
......
95 63
echo "CREATE PROCEDURAL LANGUAGE plpgsql HANDLER plpgsql_call_handler;" >> lxdbinst.sql
96 64

  
97 65
#writeln 2 1 Datenbankbenutzer einrichten
98
#tput bold
99
#writeln 3 1 "Bitte den Datenbank-Benutzernamen (Kleinbuchstaben) eingeben [lxoffice]: "
100
#tput rmso
101
#read LXOUSER
102
#if [ "$LXOUSER#" == "#" ]; then LXOUSER="lxoffice"; fi
103
#while :; do
104
#	tput bold
105
#	writeln 4 1 "Bitte ein Kennwort eingeben : "
106
#	tput rmso
107
#	read USRPWD
108
	if ! [ "$USRPWD#" == "#" ]; then break; fi
109
#	tput bel
110
#done;
111

  
112 66
LXOUSER="lxoffice"
113

  
114 67
db_get lx-office-erp/lx-office-erp-user-postgresql-password
115 68
USRPWD="$RET"
116 69

  
117

  
118 70
echo "CREATE USER $LXOUSER with CREATEDB ;" >> lxdbinst.sql
119 71
echo "ALTER USER $LXOUSER PASSWORD '$USRPWD';" >> lxdbinst.sql
120 72
echo "UPDATE pg_language SET lanpltrusted = true WHERE lanname = 'plpgsql';" >> lxdbinst.sql
......
123 75

  
124 76
echo "Fehlermeldungen die 'already exists' enthalten koennen ignoriert werden"
125 77

  
126
#writeln 11 1 Datenbank fuer Lx-Office vorbereitet
127

  
128 78
#writeln 12 1 Datenbankberechtigung einrichten
129
#wo ist die pg_hba.conf
130
#writeln 13 3 --find erst /etc dann /var/lib
131
tmp=`find /etc -name pg_hba.conf -type f`
132
[ "$tmp#" == "#" ] && tmp=`find /var/lib -name  pg_hba.conf -type f`
133
PGHBA=`echo $tmp | cut -d " " -f 1`
79
PGHBA=`find /etc/postgresql -name pg_hba.conf -type f | sort -r | head -1 -`
80
if [ "$PGHBA#" == "#" ] ; then
81
   PGHBA=`find /var/lib -name  pg_hba.conf -type f | sort -r | head -1 -`
82
fi
134 83

  
135 84
if [ "$PGHBA#" == "#" ]; then
136
	while :; do
137
#		writeln 14 1 'pg_hba.conf' nicht gefunden.
138
#		tput bold
139
#   		writeln 15 1 "Bitte den Pfad eingeben: "
140
#		tput rmso
141
#   		read PGHBA
142
   		[ "$PGHBA#" != "#" ] && [ -f $PGHBA ] && break
143
 #  		tput bel
144
	done
85
    echo $FEHLER
86
    echo 'pg_hba.conf' nicht gefunden.
87
    echo "Berechtigungen bitte selber einrichten"
88
    ERRCNT=1
145 89
fi
146
#writeln 16 1 ok. 'pg_hba.conf' gefunden
147 90

  
148 91
cnt=`grep $LXOUSER $PGHBA | wc -l `
149 92

  
150 93
if [ $cnt -eq 0 ]; then 
151
	mv $PGHBA  $PGHBA.org
152
	echo "local   all         $LXOUSER                                           password" > $PGHBA
153
	echo "host    all         $LXOUSER      127.0.0.1         255.255.255.255    password" >> $PGHBA
154
	cat $PGHBA.org >> $PGHBA
94
    mv $PGHBA  $PGHBA.org
95
    echo "local   all         $LXOUSER                                           password" > $PGHBA
96
    echo "host    all         $LXOUSER      127.0.0.1         255.255.255.255    password" >> $PGHBA
97
    cat $PGHBA.org >> $PGHBA
155 98
fi 
156 99

  
157 100
CONFDIR=`dirname $PGHBA`
158 101

  
159 102
#postgresql.conf anpassen, liegt vermutlich im gleichen Verzeichnis wie pg_hba.conf
160 103
if ! [ -f $CONFDIR/postgresql.conf ]; then
161
	#doch nicht da, dann fragen
162
        while :; do
163
#		writeln 13 1 'postgresql.conf' nicht gefunden.
164
#		tput bold
165
#                writeln 14 1 "Bitte den Pfad eingeben: "
166
#		tput rmso
167
#                read PGCONF
168
                [ "$PGCONF#" != "#" ] && [ -f $PGCONF ] && break
169
 #               tput bel
170
        done
171
	CONFDIR=`dirname $PGCONF`
104
    echo $FEHLER
105
    echo 'postgresql.conf' nicht gefunden.
106
    echo PostgreSQL selber konfigurieren
107
    ERRCNT=1
172 108
fi
173 109

  
174 110
mv $CONFDIR/postgresql.conf $CONFDIR/postgresql.conf.org
175
if ! [ $v7 -eq 0 ]; then 
176
	#Nur bei der V7.x:  tcpip_socket = true
177
	sed 's/^.*tcpip_socket.*/tcpip_socket = true/i' $CONFDIR/postgresql.conf.org > $CONFDIR/postgresql.conf
178
	cnt=`grep tcpip_socket $CONFDIR/postgresql.conf | wc -l`
179
	if [ $cnt -eq 0 ]; then
180
		cp $CONFDIR/postgresql.conf.org $CONFDIR/postgresql.conf
181
		echo "tcpip_socket = true" >> $CONFDIR/postgresql.conf
182
	fi
183
else 
184
	#Bei der V8.x OID einschalten.
185
	sed 's/^.*default_with_oids.*/default_with_oids = true/i' $CONFDIR/postgresql.conf.org > $CONFDIR/postgresql.conf
186
	cnt=`grep default_with_oids $CONFDIR/postgresql.conf | wc -l`
187
	if [ $cnt -eq 0 ]; then
188
		cp $CONFDIR/postgresql.conf.org $CONFDIR/postgresql.conf
189
		echo "default_with_oids = true" >> $CONFDIR/postgresql.conf
190
	fi
111
#Bei der V8.x OID einschalten.
112
sed 's/^.*default_with_oids.*/default_with_oids = true/i' $CONFDIR/postgresql.conf.org > $CONFDIR/postgresql.conf
113
cnt=`grep default_with_oids $CONFDIR/postgresql.conf | wc -l`
114
if [ $cnt -eq 0 ]; then
115
	cp $CONFDIR/postgresql.conf.org $CONFDIR/postgresql.conf
116
	echo "default_with_oids = true" >> $CONFDIR/postgresql.conf
191 117
fi
192 118

  
193 119
 
194
tmp=`ls /etc/init.d/postgres*`
195
PGSQL=`echo $tmp | cut -d " " -f 1`
120
tmp=`ls -r1 /etc/init.d/postgres*  | head -1 -`
196 121

  
197 122
#writeln 18 1 Datenbank neu starten
198 123
$PGSQL reload
199 124

  
200
#tput bold
201
#tput smso
202
#writeln 20 12 ok. Das sollte es gewesen sein.
203
#tput rmso
204
#tput rmso
205
echo 
125
if [ $ERRCNT -gt 0 ]; then
126
    echo $FEHLER
127
    echo Das betrifft aber nicht die Lx-Office Installation
128
    echo sondern die Konfiguration der Datenbank.
129
    echo $POSTGRESQL , $PGHBA , $CONFDIR/postgresql.conf ??
130
    sleep 10
131
fi

Auch abrufbar als: Unified diff