39. FAQ Linux-PostgreSQL

Contenu de cette section

39.1 Dernière version de la FAQ Linux-PostgreSQL

Cette FAQ est incluse ici puisque tous les utilisateurs n'ont pas de butineurs tels que Netscape et accès à l'Internet. Les utilisateurs peuvent utiliser GnuInfo, Ghostview, l'éditeur vi ou la commande man. Ce document a été généré en 10 formats différents tels que GnuInfo, RTF, Texte standard, Man page, Postscript etc.. et est distribué sur les CDROM Linux. Veuillez consultez la dernière version de cette FAQ qui se trouve à http://www.postgresql.org/docs/faq-english.shtml si vous avez accès à l'Internet."

Cette FAQ a été mise ici pour vous rendre service.

39.2 Extrait de la FAQ du site Web principal de PostgreSQL

Si vous avez accès à l'internet, cliquez sur cette URL maintenant pour en obtenir la dernière version.


=====================================================

Foire Aux Questions (FAQ) de PostgresSQL V6.1
Specifique Linux 
A LIRE EN PARALLELE AVEC LA FAQ NORMALE

=====================================================

Derniere mise a jour:     Mercredi 1er octobre 20:16:00 BST 1997

Gestionnaire actuel:      Andrew C.R. Martin (martin@biochem.ucl.ac.uk)
Auteur original:          Andrew C.R. Martin (martin@biochem.ucl.ac.uk)


Modifications dans cette version (* = modifie, + = nouveau, - = supprime):

+3.9)   Pourquoi Query 32 dure-t-il si longtemps dans les tests de regression ?

Ce fichier a ete approximativement divise comme suit :
1.*)    Installation de PostgreSQL
2.*)    Compilation des programmes accessoires
3.*)    Problemes d'execution

Reponses aux questions :
1.1)    Quelles modifications dois-je apporter a src/Makefile.global ou a
        src/Makefile.custom et d'autres modifications sont-elles necessaires?
1.2)    Pourquoi ai-je des problemes avec "libreadline" manquant ?
1.3)    [REDHAT]  Pourquoi ai-je des problemes avec libdl and dlfcn.h manquants ?
1.4)    [SLACKWARE 3.1] Pourquoi ai-je des problemes avec libdl and dlfcn.h manquants ?
1.5)    Ma compilation echoue en reclamant le "fichier include" manquant dlfcn.h
1.6)    GCC se plaint d'une option inexistante -fpic
1.7)    J'ai des messages d'avertissement du type
        "warning- cast from pointer to integer of different size"
1.8)    [SuSE-Linux 4.2-4.4] Ou sont curses et termcap ?
1.9)    Pourquoi ai-je des problemes avec ld.so ?
1.10)   Pourquoi ai-je les erreurs `yy_flush_buffer undefined' ?
1.11)   Comment dois-je compiler PostgreSQL sur un systeme a.out ?
1.12)   Pourquoi make echoue-t-il avec -
        yacc -d /disk2/PostgreSQL/src/backend/parser/gram.y
        make- /usr/bin/make- cannot execute binary file
1.13)   Que sont les references a libsocket dans X11_LIB  et libnsl dans src/Makefile.global ?
1.14)   [DEBIAN] Ou se trouve libtermcap ?
1.15)   [REDHAT] Puis-je obtenir PostgreSQL au format RPM?
1.16)   Quand j'essaie de compiler une version de developpement sous Linux, cette compilation
        echoue avec un message du style :
        In file included from /usr/include/sys/sem.h:8,
                 from ipc.c:37:
        /usr/include/asm/bitops.h:32: warning: no previous prototype for Set_bit'
        ....
        make: *** [ipc.o] Error 1
1.17)   En compilant  postgres, gcc retourne un message signal 11 et s'interrompt..
1.18)   Puis-je installer la version 6.1.1 sous MkLinux?
2.1)    L'editeur de lien ne trouve pas libX11 quand on compile pgtclsh
3.1)    J'ai une erreur indiquant _fUnKy_POSTPORT_sTuFf_ non defini quand j'execute 
        les scripts tels que createuser
3.2)    Je lance postmaster et ensuite le systeme affiche 'Bad system call(Core 
        dumped)'
3.3)    Quand j'essaie de lancer le Postmaster, pourquoi ai-je une erreur de la forme
        Failed Assertion("!(file != 0):(null)", File:
        "/usr/local/PostgreSQL/src/backend/storage/file/fd.c", Line: 257)
        !(file != 0) (0)
        initdb: could not create template database
        initdb: cleaning up.
3.4)    Pourquoi createuser ne fonctionne-t-il pas ?
3.5)    Pourquoi ai-je une erreur comme :
        IpcMemoryCreate: memKey=155356396 , size=760632 ,
        permission=384IpcMemoryCreate: shmget(..., create, ...)
        failed: Invalid argument
3.6)    Pourquoi psql echoue avec :
        psql: can't load library 'libpq.so.1'
3.7)    Autre comportement etrange
3.8)    Si l'on arrete le systeme alors que PostgreSQL est en cours d'execution, 
        alors, Linux lance toujours un fsck sur le disque au redemarrage.
3.9)    Pourquoi Query 32 dans le test de regression dure-t-il si longtemps ?

----------------------------------------------------------------------
Section 1:      Compilation de PostgreSQL
----------------------------------------------------------------------

1.1)    Quelles modifications dois-je apporter a src/Makefile.global ou 
        src/Makefile.custom et est-il necessaire de faire d'autres modifications ?

        Ces modifications sont realisees plus facilement en executant le 
        script d'adaptation dans le repertoire src qui creera un fichier
        Makefile.custom pour vous.

        La seule autre modification que vous pouvez avoir a faire consiste
        a remplacer Flex si vous avez la version 2.5.3 qui a un bogue se
        manifestant generalement par un echec de createuser (Voir la Question 3.4)

        Si vous le faites par vous-meme, vous *devez* renseigner la variable
        suivante :
                PORTNAME=       linux

        Il vous faudra aussi modifier celle-ci pour refleter votre propre 
        installation:
                POSTGRESDIR

        Si vous validez l'option USE_TCL option, vous devrez renseigner 
        celles-ci :
                TCL_INCDIR=
                TCL_LIBDIR=
                TCL_LIB=
                TK_INCDIR=
                TK_LIBDIR=
                TK_LIB=
                X11_INCDIR=
                X11_LIBDIR=
                X11_LIB=

        Sur mon systeme Slackware3.0, ces donnees sont :
                TCL_INCDIR=     /usr/include/tcl
                TCL_LIBDIR=     /usr/lib
                TCL_LIB=        -ltcl
                TK_INCDIR=      /usr/include/tcl
                TK_LIBDIR=      /usr/lib
                TK_LIB=         -ltk
                X11_INCDIR=     /usr/include/X11
                X11_LIBDIR=     /usr/X386/lib
                X11_LIB=        -lX11
 
        Vous pouvez aussi effectuer toutes les autres modifications dont vous avez 
        besoin, ceci etant documente dans les fichiers
         INSTALL et Makefile.global


1.2)    Pourquoi ai-je des problemes avec "libreadline" manquant ?

        Les systemes Linux ne sont generalement pas livres avec la bibliotheque 
        GNU readline installee. Soit vous vous assurez que vous n'avez pas 
        active les options readline dans src/Makefile.global ou
        src/Makefile.custom soit vous installez la bibliotheque GNU 
        readline.

        Notez que Debian Linux (comme FreeBSD) est livre avec readline
        installe.

1.3)    [REDHAT] Pourquoi ai-je des problemes avec libdl and dlfcn.h manquants ?

        La bibliotheque libdl est utilisee pour la liaison dynamique de 
        fonctions fournies par l'utilisateurs au moment de l'execution. 
        Pour une raison quelconque, cette bibliotheque a ete oubliee dans 
        la distribution Redhat. Il semble que ce probleme a ete resolu 
        dans la version Redhat 4.0 (Colgate).

        RedHat possede maintenant un nouveau paquetage ld.so RPM sur 
        son site FTP. Recuperez simplement :

                ftp://ftp.redhat.com/pub/redhat/devel/i386/RedHat/RPMS/ld.so-1.7.14-4.i386.rpm

        Installez le fichier RPM de la maniere habituelle et c'est tout!

        Il y a eu des rapports indiquant que des systemes ont ete abimes 
        suite a l'acces a ces bibliotheques par certains programmes pendant 
        leur mise a jour (ce qui n'est pas tout a fait surprenant). En 
        consequence, c'est une bonne idee de redemarrer le systeme avant
        l'installation de nouvelles bibliotheques et d'avoir le minimum de 
        choses en fonction pendant ces mises a niveau. Passer en mode 
        mono-utilisateur est certainement aussi une bonne idee!

        Si vous voulez le faire de la maniere difficile, vous pouvez 
        obtenir la bibliotheque et le fichier en-tete a :
        
                ftp://tsx-11.mit.edu/pub/linux/packages/GCC/ld.so-1.7.14.tar.gz

        Autrement, vous pouvez obtenir les binaires pre-compiles dans 
        distributions/debian/buzz/binary-i386/base/ld.so-1.7.14-4.deb
        sur le meme site, ou suivre les instructions donnees pour la 
        question 1.2 de correction de la meme erreur avec les premieres 
        versions de Slackware 3.1.
        Ne pas utiliser cette methode, a moins que vous sachiez ce que 
        vous faites!



1.4)    [SLACKWARE 3.1] Pourquoi ai-je des problemes avec libdl and dlfcn.h manquants ?

        Ceci se manifeste par l'impossibilite de faire l'edition de lien avec des
        fonctions comme dlopen(), dlclose(), etc. pendant la derniere phase de la
        compilation.

        Voir la reponse a la question 1.3. Slackware jusqu'a la 
        version 3.0 etait fourni avec cette bibliotheque et le fichier 
        "include" et ils ont semble revenir en arriere avec les 
        dernieres versions 3.1. Mais les premieres livraisons 3.1
        (avant le 9 Septembre 1996) ne les avaient pas et beaucoup 
        de versions CD-ROM ont ete realises a partir de ces premieres
        versions 3.1.

        Il y a eu des rapports indiquant que des systemes ont ete 
        abimes suite a l'acces a ces bibliotheques par certains 
        programmes pendant leur mise a jour (ce qui n'est pas 
        tout a fait surprenant). En consequence, c'est une bonne idee 
        de redemarrer le systeme avant l'installation de nouvelles 
        bibliotheques et d'avoir le minimum de choses en fonction 
        pendant ces mises a niveau. Passer en mode mono-utilisateur 
        est certainement aussi une bonne idee!

        La meilleure maniere de corriger cela est d'obtenir le fichier 
        ldso.tgz du disque a4 d'une distribution plus recente de 
        Slackware 3.1, de decompacter ce fichier a partir du repertoire 
        root (/), puis de faire

                sh install/doinst.sh

        pour terminer l'installation, a la suite de cela, faites

                ldconfig

        Si vous voulez l'installer manuellement, vous devez d'abord 
        installer le fichier dlfcn.h in /usr/include.

        Puis, installer le fichier libdl.so.1.7.14 (ou une version 
        plus recente) dans /lib, puis faire :

                cd /lib
                ln -sf libdl.so.1.7.14 libdl.so.1
                ln -sf libdl.so.1 libdl.so

        Sur quelques systemes (dependant de la configuration de GCC) 
        il peut etre necessaire de faire :

                cd /usr/lib
                ln -sf /lib/libdl.so .

        Finalement

                ldconfig


1.5)    Ma compilation echoue en reclamant le "fichier include" manquant dlfcn.h

        Voir la reponse aux questions 1.3/1.4. N'oubliez pas que si 
        vous utilisez un systeme a.out vous devez auparavant avoir 
        installe le paquetage dld (qui n'est pas fourni avec la plupart 
        des systemes a.out) pour avoir dlfcn.h en entier. Voir Question 1.11.


1.6)    GCC se plaint d'une option inexistante -fpic

        Les premieres versions de GCC acceptaient soit -fpic soit -fPIC.
        Il apparait que les plus recentes versions (V2.7.2?) requierent -fPIC. 
        Si vous utilisez une version ELF de Linux, on peut ignorer cela sans
        probleme, puisque -fPIC est la valeur par defaut.

        Vous pouvez apporter une correction a cela en editant le fichier
        src/Makefile.global et en changeant CFLAGS_SL


1.7)    J'ai des messages d'avertissement du type :
        "warning- cast from pointer to integer of different size"

        Ils apparaissaient dans les premieres versions de Postgres95 et 
        peuvent, sans risque, etre ignores. PostgreSQL V6.0 doit pouvoir 
        se compiler sans messages d'avertissement sauf ceux relatifs aux
        fichiers en-tetes systeme (qui peuvent egalement etre ignores 
        sans risque).

1.8)    [SuSE-Linux 4.2-4.4] Ou sont curses et termcap?

        SuSE-Linux 4.2 dispose de ncurses et non pas curses, la version 4.4 possede
        les deux. SuSE-Linux a aussi la bibliotheque termcap dans le repertoire
        /usr/lib/termcap a la plac ede /usr/lib. 

        PostgreSQL (jusqu'a V6.0)
        -------------------------
        Renseigner la valeur de CURSES_LIB dans src/Makefile.custom a -lncurses
        (ou faites ceci par l'intermediaire d'un script personnalise).

        Ajouter la ligne suivante a src/Makefile.custom:

                LDADD_BE+= -L/usr/lib/termcap

        Vous pouvez avoir besoin d'editer src/bin/psql/Makefile et d'effectuer 
        la modification de:

                ifeq ($(PORTNAME), linux)
                   LD_ADD+= -ltermcap
        en:
                ifeq ($(PORTNAME), linux)
                   LD_ADD+=

        PostgreSQL (V6.1)
        -----------------
        Le script de configuration ne sait pas regarder dans /usr/lib/termcap
        pour trouver la bibliotheque termcap, donc, vous devrez le specifier 
        au moment ou l'on vous demande d'indiquer les repertoires complementaires
        dans lesquels il faut chercher.

        Si cela ne marche pas (Je n'ai pas SuSE pour verifier ce qu'il fait),
        alors, apres avoir execute configure, il faudra editer src/Makefile.global 
        et ajouter -ltermcap dans la ligne LDFLAGS (a la suite de -lreadline).

        Vous pouvez aussi imposer l'utilisation de ncurses plutot que de curses en
        changeant -lcurses en -lncurses.

1.9)    Pourquoi ai-je des problemes avec ld.so?

        Si vous avez des problemes avec ld.so, une autre bibliotheque necessaire 
        en format ELF pour les liens dynamiques, alors c'est que vous avez bricole 
        votre systeme ou (plus vraisemblablement) effectue une mise a niveau de 
        Linux.

        Voyez les reponses aux questions 1.3/1.4. Vous pouvez avoir besoin 
        d'installer ld.so.x.y.z dans /lib et de faire tourner ldconfig.

        La version  1.7.14 est la version stable la plus recente du paquetage ld.
        Au moment de la redaction de ce texte, les versions 1.8.x de ld sont 
        experimentales.

1.10)   Pourquoi ai-je les erreurs `yy_flush_buffer undefined'?

        Ce n'est pas reellement specifique a Linux, mais c'est courant sur les 
        installations Linux les plus anciennes. Il vous faut une version recente 
        de flex (2.5.2 ou suivantes) pour compiler PostgreSQL. Notez que 
        flex 2.5.3 a un bogue: voir la Question 3.4.

1.11)   Comment dois-je compiler PostgreSQL sur un systeme a.out?

        Premierement, vous devez installer la bibliotheque dld. On peut 
        l'obtenir sur le site Sunsite sous le nom :
        Linux/libs/dld.3.2.7.tar.gz
        (ftp://sunsite.unc.edu/pub/Linux/libs/dld.3.2.7.tar.gz)

        Deuxiemement, ajouter la ligne suivante au fichier src/Makefile.custom:
                LINUX_ELF=
        (ou utilisez un script adapte)

1.12)   Pourquoi make echoue-t-il avec le message :
        yacc -d /disk2/PostgreSQL/src/backend/parser/gram.y
        make- /usr/bin/make- cannot execute binary file

        Ce fut un probleme des premieres versions de Postgres95. Pour PostgreSQL 
        on utilise  bison -y par defaut plutot que yacc.

        yacc est generalement implante comme script qui invoque bison -y
        Pour une raison quelconque (certaines versions de make ? certaines 
        versions de bash ?) make est incapable d'executer ce fichier script.

        Pour corriger cela, editez simplement src/mk/port/postgres.mk.linux
        et, a la fin du fichier, changez :
                # YACC = bison -y
        en
                YACC = bison -y

1.13)   Que sont les references a libsocket dans X11_LIB  et libnsl dans src/Makefile.global?


        Ce fut un probleme dans la version 1.08 (elles sont specifiques a Sun Solaris). 
        Cela a ete corrige dans 1.09 et 6.0

1.14)   [DEBIAN] Ou se trouve libtermcap?

        Le Linux de Debian est livre sans bibliotheque termcap et utilise ncurses
        (qui a la place utilise terminfo). Il n'y a pas besoin de modifier la 
        variable CURSES_LIB dans src/bin/psql/Makefile puisque Debian fournit un 
        lien de libncurses vers libcurses (a la difference de SuSE-Linux --- voir 
        la Question 1.8).

        Vous pouvez avoir besoin d'editer src/bin/psql/Makefile et de changer:

                ifeq ($(PORTNAME), linux)
                   LD_ADD+= -ltermcap
        en:
                ifeq ($(PORTNAME), linux)
                   LD_ADD+=

1.15)   [REDHAT] Puis-je trouver PostgreSQL en format RPM ?

        Oui ! Michal Mosiewicz
        (http://www.pdi.lodz.pl/~mimo) a gentiment realise un RPM
        de PostgreSQL V6.0 pour les architectures Intel et l'a telecharge sur
        ftp://ftp.redhat.org/pub/Incoming/Postgres-6.0-1.i386.rpm

        C'est une version pre-compilee, le source RPM est en cours de realisation au
        moment de cette redaction (3 fevrier 1997).

1.16)   Quand j'essaie de compiler une version de developpement sous linux, la compilation
        echoue en donnant un message du type :
        In file included from /usr/include/sys/sem.h:8,
                 from ipc.c:37:
        /usr/include/asm/bitops.h:32: warning: no previous prototype for Set_bit'
        ....
        make: *** [ipc.o] Error 1

        Le probleme vient du fait que linux ne fournit pas de prototypes pour ces
        fonctions en ligne. La solution consiste a aller dans le repertoire
        .../src/backend/storage/ipc et d'editer le fichier Makefile.
        Changez la ligne
           CFLAGS+=$(INCLUDE_OPT)
        en
           CFLAGS+=$(INCLUDE_OPT) -Wno-error

        Faites la meme chose dans le repertoire ../src/backend/storage/lmgr.

1.17)   Quand on compile postgres, gcc renvoie le message 'signal 11' et s'interrompt.
        Plus precisement :
           gcc: Internal compiler error: program cc1 got fatal
                signal 11

        Ceci peut etre du a un probleme de materiel/memoire. PostgreSQL est un gros
        programme, et de grandes compilations gcc (telles que compiler
        PostgreSQL ou recompiler le noyau) sollicitent la memoire plus que
        la plupart des autres programmes entrainant des erreurs qui ne se
        produisent pas en utilisation normale. Peu de systemes d'exploitation
        se trouvent dans la situation de solliciter le materiel de cette facon
        et donc, vous pouvez ne jamais voir ce type de problemes sous DOS/Windows.

        Pour des informations complementaires sur ce sujet consulter :
           http://www.bitwizard.nl/sig11

1.18)   Puis-je installer la version 6.1.1 sous MkLinux?

        Tatsuo Ishii  l'a fait sous MkLinux DR2.1 update2 apres application d'une
        petite rustine disponible a :
        ftp://ftp.sra.co.jp/pub/cmd/postgres/6.1.1/mklinux.patch.gz


----------------------------------------------------------------------
Section 2:      Compilation des programmes accessoires
----------------------------------------------------------------------

2.1)    L'editeur de liens n'arrive pas a trouver libX11 quand on compile pgtclsh

        Ajoutez ce qui suit a src/Makefile.custom
                X11_LIBDIR = /usr/X11R6/lib

----------------------------------------------------------------------
Section 3:      Problemes d'execution
----------------------------------------------------------------------

3.1)    J'ai une erreur indiquant _fUnKy_POSTPORT_sTuFf_ non defini quand 
        j'execute des scripts tels que createuser

        C'est un bogue dans la V1.06-V1.07 de Postgres et il est corrige dans 
        les versions V1.08 et au-dessus.

3.2)    Je lance postmaster et ensuite le systeme affiche 'Bad system call(Core 
        dumped)'

        Ceci indique que vous n'avez pas compile le support de la memoire partagee 
        dans votre noyau. Il vous faut recompiler le noyau Linux en incluant cette 
        fonctionnalite.


3.3)    Quand j'essaie de lancer le Postmaster, pourquoi ai-je une erreur de la forme
        Failed Assertion("!(file != 0)  - (null)", File:
        "/usr/local/PostgreSQL/src/backend/storage/file/fd.c", Line: 257)
        !(file != 0) (0)
        initdb: could not create template database
        initdb: cleaning up.

        Vos permissions sur le fichier /dev/null ne sont pas bonnes. 

        ls -l /dev/null devrait vous donner quelque chose comme:

                crw-rw-rw-  1 root  wheel    2,   2 Oct  8 18:41 /dev/null

        Corrigez les permissions en utilisant :

                chmod a+rw /dev/null

3.4)    Pourquoi createuser ne fonctionne-t-il pas?

        Il y a un probleme avec la Version 2.5.3 de GNU flex et de createuser. 
        Vos options sont soit de revenir a la version V2.5.2 de flex, d'appliquer une
        rustine a la version V2.5.3 (fournie dans doc/README.flex) soit d'attendre 
        la version V2.5.4 qui corrigera ce bogue.

3.5)    Pourquoi ai-je une erreur du type :
        IpcMemoryCreate- memKey=155356396 , size=760632 ,
        permission=384IpcMemoryCreate: shmget(..., create, ...)
        failed: Invalid argument

        Vous n'avez pas inclus le support IPC dans votre noyau Linux. Il vous 
        faudra reconstruire le noyau et valider cette option.

3.6)    Pourquoi psql echoue avec
        psql- can't load library 'libpq.so.1'

        Psql a ete compile pour etre lie dynamiquement avec la bibliotheque libpq.

        Pour remedier a cela, vous devez vous connecter en tant que root et editer le 
        fichier
                /etc/ld.so.conf
        Ajouter une simple ligne a la fin qui donne le nom du repertoire de la bibliotheque
        PostgreSQL (le sous-repertoire lib de votre installation pour
        PostgreSQL) et executer
                /sbin/ldconfig -v

        Autrement, (et si vous n'avez pas l'acces root), vous pouvez utiliser la variable
        d'environnement LD_LIBRARY_PATH.

        La variable LD_LIBRARY_PATH contient une liste des chemins, separes par le 
        signe : (deux points) qui doivent etre utilises pour retrouver les bibliotheques 
        partagees. Les chemins indiques dans cette liste sont parcourus avant ceux specifies
        par ldconfig.

        Par consequent, sous Bash, vous devrez faire quelque-chose comme :
                export LD_LIBRARY_PATH='PathToPGSQL'/lib
        ou, si vous utilisez tcsh
                setenv LD_LIBRARY_PATH 'PathToPGSQL'/lib
        en remplacant 'PathToPGSQL' par le chemin approprie du sommet de 
        votre repertoire PostgreSQL.

        Notez que la commande ldd peut etre utilisee pour visualiser, dans le cas
        d'un executable lie dynamiquement, la liste des chemins de toutes les 
        bibliotheques partagees dont depend l'executable.

3.7)    Autres comportements etranges

        Je ne suis pas certain du genre de symptomes que cela peut donner,
        sauf que rien ne fonctionne correctement, mais il a ete indique
        qu'il faut etre vigilant a ce que le chargeur dynamique charge
        la bonne version de la bibliotheque libpq. Si vous en avez une 
        version ancienne apparaissant dans le chemin de vos bibliotheques
        (par exemple dans /usr/lib) elle peut etre chargee en lieu et place
        de la nouvelle version que vous avez l'intention de charger. 
        Soyez surs de la tenir en dehors du chemin et consultez la
        question 3.6 concernant les details du chargement d'une bibliotheque.

3.8)    Si l'on arrete le systeme alors que PostgreSQL est en cours d'execution, 
        alors, Linux lance toujours un fsck sur le disque au re-demarrage.

        Ce comportement a ete signale quelques fois et il semble que cela 
        resulte du lancement de PostgreSQL dans /etc/inittab comme on
        le suggere dans le document d'installation : INSTALL.

        En consequence, nous vous recommandons de lancer le postmaster a partir
        d'un script rc . Avec une version de type Slackware, il faudra modifier
        /etc/rc.d/rc.local pour demarrer lepostmaster. Avec une version de type
        RedHat vous devrez creer un script de style SysV style dans
        /etc/rc.d/rc3.d base sur le fichier squelette /etc/rc.d/init.d.

        Il y a un exemple de fichier dans contrib/linux/postgres.init

        Voici un autre exemple de fichier fourni par John Robinson
        qu'il faudra modifier selon vos besoins :

#!/bin/sh
#
# postgreSQL.init Ce script shell script est charge de lancer et de stopper
#               le postmaster PostgreSQL.
#

# Bibliotheque de fonctions.
. /etc/rc.d/init.d/functions

# Configuration reseau.
. /etc/sysconfig/network

# Verification du fonctionnement du reseau.
[ $(NETWORKING) = "no" ] && exit 0

# Regarder comment on a ete appele.
case "$1" in
  start)
        # Start daemons.
        echo -n "Demarrage du demon Postmaster postgres:"
        if [ -z "`pidofproc postmaster`" ]
        then
                su postgres -c "/usr/local/pgsql/bin/postmaster 
                                      -D /home/postgreSQL/data -p 5432 &"
                echo -n " postmaster"
        else
                echo -n " (deja en fonctionnement)"
        fi
        echo
        touch /var/lock/subsys/postgres
        ;;
  stop)
        # Arret des demons.
        echo -n "Arret du demon Postmaster postgres: "
        killall -TERM postmaster 2>/dev/null
        killall -TERM postgres 2>/dev/null
        echo
        rm -f /var/lock/subsys/postgres
        ;;
  *)
        echo "Usage: postgres (start|stop)"
        exit 1
esac

exit 0

3.9)    Pourquoi Query 32 dans le test de regression dure-t-il si longtemps ?

        Ceci est du a un bogue dans les scripts de regression qui ne se produit
        que sur les machines sous Linux. A ma connaissance, il y a deux moyens de 
        les contourner
        (information donnee par Tatsuo Ishii ):

        1. remplacer ce qui suit dans regress.sh:
                time postgres -texecutor -tplanner -Q bench < bench.sql
        par :
                postgres -texecutor -tplanner -Q bench < bench.sql

        2. apres avoir execute le test, enlever la toute derniere ligne a la fin du
        fichier bench.out, quelquechose comme :
                85.86user 114.47system 4:49.20elapsed 69%CPU (0avgtext+0avgdata 0maxresident)k
        et tapez :
                sh ./perquery < bench.out > & bench.out.perquery

----------------------------------------------------------------------------
Dr. Andrew C.R. Martin                             University College London
EMAIL: (Work) martin@biochem.ucl.ac.uk    (Home) andrew@stagleys.demon.co.uk
URL:   http://www.biochem.ucl.ac.uk/~martin
Tel:   (Work) +44(0)171 419 3890                    (Home) +44(0)1372 275775


Chapitre suivant, Chapitre Précédent

Table des matières de ce chapitre, Table des matières générale

Début du document, Début de ce chapitre