Installer PostgreSQL 8.3 avec MacPorts

Après avoir installer Apache 2.2 à l’aide de MacPorts, poursuivons avec l’installation de PostgreSQL 8.3.

Nous considérons que MacPorts est installé et configuré (voir ici dans le cas contraire).

Recherchez le nom du paquet qui correspond à la version 8.3 de PostgreSQL.

port search postgresql

Deux noms de paquets correspondent à la version 8.3 de PostgreSQL :

  • « postgresql83 » qui est le client
  • « postgresql83-server » qui est le serveur

Le client est installé automatiquement lorsqu’on installe le serveur.

Pour connaitre toutes les options d’installation, tapez la commande suivante :

port variants postgresql83-server

Nous allons installer PostgreSQL 8.3 avec les options d’installation par défaut :

sudo port install postgresql83-server

MacPorts crée automatiquement l’utilisateur « postgres », pour connaître les détails sur cet utilisateur, utilisez la commande ci-dessous :

dscl . -read /Users/postgres
// Affiche :
ppleMetaNodeLocation: /Local/Default
GeneratedUID: A20245E7-....
NFSHomeDirectory: /opt/local/var/db/postgresql83
Password: *
PrimaryGroupID: 500
RealName:
 PostgreSQL-83\ Server
RecordName: postgres
RecordType: dsRecTypeStandard:Users
UniqueID: 500
UserShell: /bin/sh

MacPorts n’initialise pas PostgreSQL, il est nécessaire d’effectuer l’initialisation manuellement :

 sudo mkdir -p /opt/local/var/db/postgresql83/defaultdb
 sudo chown postgres:postgres /opt/local/var/db/postgresql83/defaultdb
 sudo su postgres -c '/opt/local/lib/postgresql83/bin/initdb -D /opt/local/var/db/postgresql83/defaultdb'

MacPorts crée automatiquement le fichier « plist » du système de gestion du démarrage des programme, voici son contenu :





Labelorg.macports.postgresql83-server
ProgramArguments

        /opt/local/bin/daemondo
        --label=postgresql83-server
        --start-cmd
        /opt/local/etc/LaunchDaemons/org.macports.postgresql83-server/postgresql83-server.wrapper
        start
        ;
        --stop-cmd
        /opt/local/etc/LaunchDaemons/org.macports.postgresql83-server/postgresql83-server.wrapper
        stop
        ;
        --restart-cmd
        /opt/local/etc/LaunchDaemons/org.macports.postgresql83-server/postgresql83-server.wrapper
        restart
        ;
        --pid=none

Debug
Disabled
OnDemand
RunAtLoad


Par défaut, PostgreSQL ne sera pas lancé au démarrage.

– Si vous souhaitez que PostgreSQL soit lancé au démarrage, lancez la commande suivante :

// Le fichier "plist" sera modifié automatiquement
sudo launchctl load -w /Library/LaunchDaemons/org.macports.postgresql83-server.plist

– Dans le cas contraire, il faudra charger le fichier manuellement :

sudo launchctl load -F /Library/LaunchDaemons/org.macports.postgresql83-server.plist

Dans le cas où vous en souhaitez pas lancer automatiquement PostgreSQL au démarrage, créer des alias rend le contrôle manuel du serveur PostgreSQL plus simple. Pour cela, nous allons ajouter quelques lignes à notre fichier de configuration de shell.

cd ~
nano .profile
// Ajoutez les lignes suivantes
// Pour faire simple, on utilise directement le fichier "plist" et donc Launchd
alias pgstart='sudo launchctl load -F /Library/LaunchDaemons/org.macports.postgresql83-server.plist'
alias pgstop='sudo launchctl unload /Library/LaunchDaemons/org.macports.postgresql83-server.plist'

Pour vérifier le bon fonctionnement de PostgreSQL, nous pouvons utiliser :

  • le client texte en ligne de commande : « psql »
  • un client graphique commePgAdmin III (gratuit)

Pour utiliser la ligne de commande, il est souhaitable d’ajouter un fichier de configuration de Shell pour l’utilisateur « postgres ».

sudo nano /opt/local/var/db/postgresql83/.profile
// Contenu du fichier :
export PATH=/opt/local/bin:/opt/local/sbin:/opt/local/lib/postgresql83/bin:$PATH
// Changez les propriétaires du fichier
sudo chown postgres:postgres /opt/local/var/db/postgresql83/.profile

Testons rapidement PostgreSQL en ligne de commande :

A titre de mémo, l’anti slash s’obtient avec la combinaison de touches suivante :
[SHIFT]+[ALT]+[ : / ]

// Démarrer le server
pgstart

// Passer sous l utilisateur "postgres"
sudo su - postgres

// Se connecter au serveur sans préciser de base de données
psql

// Connaitre l aide
\?

// Lister les bases de données
\l

// Affiche
        List of databases
   Name    |  Owner   | Encoding 
-----------+----------+----------
 postgres  | postgres | UTF8
 template0 | postgres | UTF8
 template1 | postgres | UTF8
(3 rows)

// Quitter
\q

// Quitter l utilisateur "postgres"
exit

// Stopper Postgres
pgstop

L’utilisation du client en ligne de commande est très pratique et sa connaissance est parfois indispensable. Cependant, lorsque vous travaillez en local, un client graphique comme PgAdmin III remplace la ligne de commande pour bien des tâches. Son utilisation est triviale, vous pouvez le télécharger à cette adresse.

3 réponse à Installer PostgreSQL 8.3 avec MacPorts

  1. le novembre 8, 2011 à 6:20 , Antoine Malpel dit:

    Superbe tutoriel ! merci beaucoup

  2. le février 3, 2009 à 10:13 , Fabien dit:

    Bonjour,

    Le fichier de configuration de PostgreSQL est créé lors de la phase d’initialisation du serveur (cf. initdb).

    « sudo nano /opt/local/var/db/postgresql83/defaultdb/postgresql.conf »

    Voilà, je pense que cela répondra à votre problème.

    Fabien

  3. le février 3, 2009 à 3:19 , annerezo dit:

    Bonjour,

    Tout d’abord merci beaucoup pour cet article bien utile ! Je voudrai changer les options de log dans postgres et je n’y arrive pas… Il y a bien un fichier /opt/local/var/log/postgresql83/postgres.log. J’ai créé un fichier postgresql.conf en recopiant et en modifiant postgresql.conf.sample, puis redémarré postgresql, mais ça ne change pas grand chose…

    Des idées ?

    Merci

Laisser un commentaire

Votre adresse de messagerie ne sera pas publiée. Les champs obligatoires sont indiqués avec *