GNU/Linux >> Tutoriels Linux >  >> Linux

9 étapes pour installer et configurer PostgreSQL à partir de la source sous Linux


Semblable à mySQL, postgreSQL est très célèbre et riche en fonctionnalités base de données libre et open source .

Plus tôt, nous avons discuté de plusieurs installations, notamment l'installation de la pile LAMP, l'installation d'Apache2 à partir de la source, l'installation de PHP5 à partir de la source et l'installation de mySQL.

Dans cet article, voyons comment installer la base de données postgreSQL sur Linux à partir du code source.

Étape 1 :Télécharger le code source postgreSQL

Depuis le site de téléchargement de postgreSQL, choisissez le site miroir qui se trouve dans votre pays.

# wget http://wwwmaster.postgresql.org/redir/198/f/source/v8.3.7/postgresql-8.3.7.tar.gz

Étape 2 :Installez postgreSQL

# tar xvfz postgresql-8.3.7.tar.gz 

# cd postgresql-8.3.7

# ./configure
checking for sgmlspl... no
configure: creating ./config.status
config.status: creating GNUmakefile
config.status: creating src/Makefile.global
config.status: creating src/include/pg_config.h
config.status: creating src/interfaces/ecpg/include/ecpg_config.h
config.status: linking ./src/backend/port/tas/dummy.s to src/backend/port/tas.s
config.status: linking ./src/backend/port/dynloader/linux.c to src/backend/port/dynloader.c
config.status: linking ./src/backend/port/sysv_sema.c to src/backend/port/pg_sema.c
config.status: linking ./src/backend/port/sysv_shmem.c to src/backend/port/pg_shmem.c
config.status: linking ./src/backend/port/dynloader/linux.h to src/include/dynloader.h
config.status: linking ./src/include/port/linux.h to src/include/pg_config_os.h
config.status: linking ./src/makefiles/Makefile.linux to src/Makefile.port

# make
make[3]: Leaving directory `/usr/save/postgresql-8.3.7/contrib/spi'
rm -rf ./testtablespace
mkdir ./testtablespace
make[2]: Leaving directory `/usr/save/postgresql-8.3.7/src/test/regress'
make[1]: Leaving directory `/usr/save/postgresql-8.3.7/src'
make -C config all
make[1]: Entering directory `/usr/save/postgresql-8.3.7/config'
make[1]: Nothing to be done for `all'.
make[1]: Leaving directory `/usr/save/postgresql-8.3.7/config'
All of PostgreSQL successfully made. Ready to install. 

# make install
make -C test/regress install
make[2]: Entering directory `/usr/save/postgresql-8.3.7/src/test/regress'
/bin/sh ../../../config/install-sh -c  pg_regress '/usr/local/pgsql/lib/pgxs/src/test/regress/pg_regress'
make[2]: Leaving directory `/usr/save/postgresql-8.3.7/src/test/regress'
make[1]: Leaving directory `/usr/save/postgresql-8.3.7/src'
make -C config install
make[1]: Entering directory `/usr/save/postgresql-8.3.7/config'
mkdir -p -- /usr/local/pgsql/lib/pgxs/config
/bin/sh ../config/install-sh -c -m 755 ./install-sh '/usr/local/pgsql/lib/pgxs/config/install-sh'
/bin/sh ../config/install-sh -c -m 755 ./mkinstalldirs '/usr/local/pgsql/lib/pgxs/config/mkinstalldirs'
make[1]: Leaving directory `/usr/save/postgresql-8.3.7/config'
PostgreSQL installation complete.

Options PostgreSQL ./configure

Voici différentes options qui peuvent être transmises au ./configure :

  • –prefix=PREFIX installe des fichiers indépendants de l'architecture dans PREFIX. L'emplacement d'installation par défaut est /usr/local/pgsql
  • –enable-integer-datetimes active la prise en charge de la date/heure entière 64 bits
  • –enable-nls[=LANGUAGES] activer la prise en charge de la langue maternelle
  • –disable-shared         ne crée pas de bibliothèques partagées
  • –disable-rpath           ne pas intégrer le chemin de recherche de la bibliothèque partagée dans les exécutables
  • –disable-spinlocks    n'utilise pas de verrous tournants
  • –enable-debug           construit avec des symboles de débogage (-g)
  • –enable-profiling       construit avec le profilage activé
  • –enable-dtrace           construit avec la prise en charge de DTrace
  • –enable-depend         activer le suivi automatique des dépendances
  • –enable-cassert         activer les vérifications d'assertion (pour le débogage)
  • –enable-thread-safety  rend les bibliothèques clientes thread-safe
  • –enable-thread-safety-force force la sécurité des threads malgré l'échec du test de thread
  • –disable-largefile       omettre la prise en charge des fichiers volumineux
  • –with-docdir=DIR      installer la documentation dans DIR [PREFIX/doc]
  • –without-docdir         ne pas installer la documentation
  • –with-includes=DIRS recherche des fichiers d'en-tête supplémentaires dans DIRS
  • –with-libraries=DIRS recherche des bibliothèques supplémentaires dans DIRS
  • –with-libs=DIRS         orthographe alternative de –with-libraries
  • –with-pgport=PORTNUM   modifier le numéro de port par défaut [5432]
  • –with-tcl                     créer des modules Tcl (PL/Tcl)
  • –with-tclconfig=DIR   tclConfig.sh est dans DIR
  • –with-perl                   construit des modules Perl (PL/Perl)
  • –with-python              construit des modules Python (PL/Python)
  • –with-gssapi               construit avec la prise en charge de GSSAPI
  • –with-krb5                  construit avec la prise en charge de Kerberos 5
  • –with-krb-srvnam=NAME nom principal de service par défaut dans Kerberos [postgres]
  • –with-pam                  construit avec le support PAM
  • –with-ldap                  construit avec le support LDAP
  • –with-bonjour            créer avec l'assistance Bonjour
  • –with-openssl            construit avec la prise en charge d'OpenSSL
  • –without-readline      ne pas utiliser GNU Readline ni BSD Libedit pour l'édition
  • –with-libedit-preferred  préfère BSD Libedit à GNU Readline
  • –with-ossp-uuid        utilise la bibliothèque UUID OSSP lors de la création de contrib/uuid-ossp
  • –with-libxml               construit avec le support XML
  • –with-libxslt               utilise le support XSLT lors de la construction de contrib/xml2
  • –with-system-tzdata=DIR utilise les données de fuseau horaire du système dans DIR
  • –without-zlib              ne pas utiliser Zlib
  • –with-gnu-ld              suppose que le compilateur C utilise GNU ld [default=no]

Problème d'installation de PostgreSQL 1 :

Vous pouvez rencontrer le message d'erreur suivant lors de l'exécution de ./configure lors de l'installation de postgreSQL.

# ./configure
checking for -lreadline... no
checking for -ledit... no
configure: error: readline library not found
If you have readline already installed, see config.log for details on the
failure.  It is possible the compiler isn't looking in the proper directory.
Use --without-readline to disable readline support.

Solution d'installation de PostgreSQL 1 :

Installez readline-devel et libtermcap-devel pour résoudre le problème ci-dessus.

# rpm -ivh libtermcap-devel-2.0.8-46.1.i386.rpm readline-devel-5.1-1.1.i386.rpm
warning: libtermcap-devel-2.0.8-46.1.i386.rpm: Header V3 DSA signature: NOKEY, key ID 1e5e0159
Preparing...                ########################################### [100%]
   1:libtermcap-devel       ########################################### [ 50%]
   2:readline-devel         ########################################### [100%]

Étape 3 :Vérifiez la structure du répertoire postgreSQL

Après l'installation, assurez-vous que les répertoires bin, doc, include, lib, man et share sont créés dans le répertoire par défaut /usr/local/pgsql comme indiqué ci-dessous.

# ls -l /usr/local/pgsql/
total 24
drwxr-xr-x 2 root root 4096 Apr  8 23:25 bin
drwxr-xr-x 3 root root 4096 Apr  8 23:25 doc
drwxr-xr-x 6 root root 4096 Apr  8 23:25 include
drwxr-xr-x 3 root root 4096 Apr  8 23:25 lib
drwxr-xr-x 4 root root 4096 Apr  8 23:25 man
drwxr-xr-x 5 root root 4096 Apr  8 23:25 share

Étape 4 :Créer un compte utilisateur postgreSQL

# adduser postgres

# passwd postgres
Changing password for user postgres.
New UNIX password:
Retype new UNIX password:
passwd: all authentication tokens updated successfully.

Étape 5 :Créer un répertoire de données postgreSQL

Créez le répertoire de données postgres et définissez l'utilisateur postgres comme propriétaire.

# mkdir /usr/local/pgsql/data

# chown postgres:postgres /usr/local/pgsql/data

# ls -ld /usr/local/pgsql/data
drwxr-xr-x 2 postgres postgres 4096 Apr  8 23:26 /usr/local/pgsql/data

Étape 6 :Initialiser le répertoire de données postgreSQL

Avant de pouvoir commencer à créer une base de données postgreSQL, le répertoire de données vide créé à l'étape ci-dessus doit être initialisé à l'aide de la commande initdb comme indiqué ci-dessous.

# su - postgres

# /usr/local/pgsql/bin/initdb -D /usr/local/pgsql/data/
The files belonging to this database system will be owned by user postgres
This user must also own the server process.

The database cluster will be initialized with locale en_US.UTF-8.
The default database encoding has accordingly been set to UTF8.
The default text search configuration will be set to "english".

fixing permissions on existing directory /usr/local/pgsql/data ... ok
creating subdirectories ... ok
selecting default max_connections ... 100
selecting default shared_buffers/max_fsm_pages ... 32MB/204800
creating configuration files ... ok
creating template1 database in /usr/local/pgsql/data/base/1 ... ok
initializing pg_authid ... ok
initializing dependencies ... ok
creating system views ... ok
loading system objects' descriptions ... ok
creating conversions ... ok
creating dictionaries ... ok
setting privileges on built-in objects ... ok
creating information schema ... ok
vacuuming database template1 ... ok
copying template1 to template0 ... ok
copying template1 to postgres ... ok

WARNING: enabling "trust" authentication for local connections
You can change this by editing pg_hba.conf or using the -A option the
next time you run initdb.

Success. You can now start the database server using:

    /usr/local/pgsql/bin/postgres -D /usr/local/pgsql/data
or
    /usr/local/pgsql/bin/pg_ctl -D /usr/local/pgsql/data -l logfile start

Étape 7 :Valider le répertoire de données postgreSQL

Assurez-vous que tous les fichiers de configuration de la base de données postgres (par exemple, postgresql.conf) sont créés dans le répertoire de données, comme indiqué ci-dessous.

$ ls -l /usr/local/pgsql/data
total 64
drwx------ 5 postgres postgres  4096 Apr  8 23:29 base
drwx------ 2 postgres postgres  4096 Apr  8 23:29 global
drwx------ 2 postgres postgres  4096 Apr  8 23:29 pg_clog
-rw------- 1 postgres postgres  3429 Apr  8 23:29 pg_hba.conf
-rw------- 1 postgres postgres  1460 Apr  8 23:29 pg_ident.conf
drwx------ 4 postgres postgres  4096 Apr  8 23:29 pg_multixact
drwx------ 2 postgres postgres  4096 Apr  8 23:29 pg_subtrans
drwx------ 2 postgres postgres  4096 Apr  8 23:29 pg_tblspc
drwx------ 2 postgres postgres  4096 Apr  8 23:29 pg_twophase
-rw------- 1 postgres postgres     4 Apr  8 23:29 PG_VERSION
drwx------ 3 postgres postgres  4096 Apr  8 23:29 pg_xlog
-rw------- 1 postgres postgres 16592 Apr  8 23:29 postgresql.conf

Étape 8 :Démarrer la base de données postgreSQL

Utilisez la commande postgres postmaster pour démarrer le serveur postgreSQL en arrière-plan, comme indiqué ci-dessous.

$ /usr/local/pgsql/bin/postmaster -D /usr/local/pgsql/data >logfile 2>&1 &
[1] 2222

$ cat logfile
LOG:  database system was shut down at 2009-04-08 23:29:50 PDT
LOG:  autovacuum launcher started
LOG:  database system is ready to accept connections

Étape 9 :Créer une base de données postgreSQL et tester l'installation

Créez une base de données de test et connectez-vous à celle-ci pour vous assurer que l'installation a réussi, comme indiqué ci-dessous. Une fois que vous commencez à utiliser la base de données, effectuez fréquemment des sauvegardes comme indiqué dans l'article Comment sauvegarder et restaurer PostgreSQL.

$ /usr/local/pgsql/bin/createdb test

$ /usr/local/pgsql/bin/psql test
Welcome to psql 8.3.7, the PostgreSQL interactive terminal.

Type:  \copyright for distribution terms
       \h for help with SQL commands
       \? for help with psql commands
       \g or terminate with semicolon to execute query
       \q to quit

test=#

Linux
  1. Installer Apache 2 à partir de la source sur Linux

  2. Comment installer et configurer EMC PowerPath sous Linux

  3. 12 étapes pour installer et configurer Alfresco sur UNIX / Linux

  4. Comment installer MongoDB à partir de la source (et en utilisant YUM) sous Linux

  5. Comment installer TBB à partir de la source sur Linux et le faire fonctionner

Comment installer et configurer Odoo sur Ubuntu Linux

4 étapes faciles pour installer et configurer VMware Server 2 sur Linux

Comment installer et configurer le serveur DNS sous Linux

Comment installer et configurer ZSH sur les distributions Linux

Comment installer et configurer AnyDesk sur le système Linux

Comment installer et configurer Django sur le système Linux