#!/bin/bash #Framework, welches ein komplettes Linux System aus den Sourcen erstellt #dieses Framework wird im CVS Repository #:pserver:cvs.rainmaker-mm.de/RMM/cvs zur Verfügung gestellt # #Lage dieser Datei im Archiv: $Source$ # #(c) Rainmaker MultiMedia OHG #This program is free software; you can redistribute it and/or #modify ist under the terms of the GNU General Public License #as published by the Free Software Foundation; either version #2 of the License, or (at your option) any later version. # #This program is distributed in the hope that it will be useful, #but WITHOUT ANY WARRANTY; without even the implied warranty of #MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. #See the GNU General Public License for more details. # #You should have received a copy of the GNU General Public License #along with this program; if not write to the Free Software Foundation, #Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA. # #Beschreibung: #Postinstall Script für postgresql # #Aufrufparameter: #keine # #Letzte Änderung von: $Author$ #Datum der letzten Änderung: $Date$ #Version der Datei: $Revision$ # #$Log$ #Revision 1.12 2007/04/29 12:15:20 kueller #postgres erhaelt jetzt fest die uid 49 # #Revision 1.11 2006/10/25 12:08:49 kueller #Anpassung an 32/64 Bit Viitor # #Revision 1.10 2002/10/09 07:59:51 kueller #Anpassungen an neuen chroot Modus von installpkg. Parameter $1 nicht mehr #notwendig, da chroot auf $1 ausgeführt wird. Script entsprechend Angepasst. #Ausserdem anpassung des Headers an neue GPLizes Standart Header. # # #Revision 1.9 2001/12/11 11:58:17 kueller #Korrektur kleinerer Fehler. Segmention fault nachwievor bei installation. #/tmp/inidb.$$ kann nicht gelesen werden (rechte) - fuehrt dazu, dass #initdb nach dem vacuuming der Datenbank mit einem segmention fault abbricht. #Kann durch Loeschen des Datenbank Verzeichnisses (nur den Inhalt!), sowie einem #neuerlichen lauf von initdb (unter user postgres) behoben werden - funktioniert #bei haendischem aufruf! # #Revision 1.8 2001/12/11 11:33:59 kueller #sed aufruf korrigiert (unterminated s command) # #Revision 1.7 2001/12/11 11:20:46 kueller #Rechte von /opt/PostgreSQL werden nun korrigiert. Setzen von defaultpath fuer #die Datenbanken korrigiert. # #Revision 1.6 2001/11/03 21:52:26 segler # #initdb haette den postmaster gerne am laufen. Daher tuen wir ihm den Gefallen und starten /etc/init.d/postgresql start, das zu diesem Zeitpunkt anwesend sein sollte. Dafuer legt initdb /data mit entsprechenden Rechten selber an. # #Revision 1.5 2001/10/10 19:40:55 kueller #Diverse Korrekturen - #Doppelte Read Abfrage für DATADIR wenn nicht default entfernt #$1 wird nun ausgewertet und als alternativer installpath #verwendet (unattendet Installation) # #Revision 1.4 2001/10/08 08:34:51 kueller #cvs header hinzugefügt # # LIBINST=`grep "/opt/PostgreSQL/lib" /etc/ld.so.conf` if [ ! "$LIBINST" ]; then echo "/opt/PostgreSQL/lib" >>/etc/ld.so.conf if [ -d /opt/PostgreSQL/lib64 ]; then echo "/opt/PostgreSQL/lib64" >>/etc/ld.so.conf fi fi if ! getent passwd postgres; then useradd -u 49 -g daemon -d /opt/PostgreSQL -s /bin/bash postgres fi chown -R postgres:daemon /opt/PostgreSQL if [ ! -f /tmp/NOQUEST ]; then echo "Where would you install the Databases ? [/opt/PostgreSQL/data] " read fi if [ "$REPLY" ]; then DATADIR=$REPLY else DATADIR=/opt/PostgreSQL/data fi if [ $DATADIR ] && [ ! -f /tmp/NOQUEST ]; then if [ ! -d $DATADIR ]; then echo "The directory $DATADIR dont exist!" echo "Should i create it for you ? [Y/n] " read if [ "$REPLY" != "y" ]; then echo "Exiting. You have to build the Database manualy" echo "-> initdb -D /PATH_TO_DATADIR" echo "-> edit /etc/sysconfig/PostgreSQL" echo "-> /etc/init.d/postgresql start - to launch the server" else sed -e "s%PGDATA=/opt/PostgreSQL/data%PGDATA=$DATADIR%" /etc/sysconfig/profile.d/PostgreSQL > /tmp/PostgreSQL.tmp mv /tmp/PostgreSQL.tmp /etc/sysconfig/profile.d/PostgreSQL source /tmp/PostgreSQL.tmp rm /tmp/PostgreSQL.tmp mkdir -p /$DATADIR chown postgres /$DATADIR su - postgres -c "/opt/PostgreSQL/bin/initdb -D /$DATADIR" fi else echo "Exiting. $DATADIR still exists !" exit fi else echo "Creating initial database in : /opt/PostgreSQL/data" source /etc/sysconfig/profile.d/PostgreSQL mkdir -p /opt/PostgreSQL/data chown postgres:daemon /opt/PostgreSQL/data /etc/init.d/postgresql start su - postgres -c "/opt/PostgreSQL/bin/initdb -D /opt/PostgreSQL/data" fi