Instalar PostgreSQL desde Las fuentes en GNU/Linux

Hoy vamos a realizar una instalación de PostgreSQL desde las fuentes, que nos servirá para cualquier distro estándar de GNU/Linux.

1. Herramientas y Ambiente en PostgreSQL.

Antes de iniciar con la instalación de PostgreSQL, es importante conocer ciertas herramientas y servicios que nos harán la vida más facil en un ambiente de producción.

a. Aplicaciones de Servidor y de Usuario.

Aplicaciones de Servidor:

initdb: crea el cluster de la base de datos. PGDATA
pg_ctl: start, stop, restart el servidor postgreSQL.
postgres: servidor postgreSQL en modo “single-user”
postmaster: servidor postgreSQL en modo “multi-user”

Aplicaciones de Usuario:

pg_config: información de configuración de postgreSQL.
psql: frontend de postgreSQL para ejecutar sentencias SQL.

b. Ficheros de configuración.

postgresql.conf: fichero de configuración para el funcionamiento del servidor.
pg_hba.conf: fichero de autenticación para usuarios y acceso a la base de datos.

2. Configuración del Ambiente

Para el entorno debemos tener presente una serie de inquietudes como:

¿Qué versión de postgresql instalaremos?
¿Dónde instaleremos postgres?
¿Dónde descargaremos las fuentes?
¿Dónde crearemos el cluster?

A. Creación del usuario postgres.

Podemos establecer como home del usuario postgres la ubicación de la estructura de nuestro servidor.

# adduser --home /usr/local/postgres postgres

Luego nos logueamos con el usuario postgres.

 # login postgre
 $ id
 uid=1001(postgres) gid=1001(postgres) grupos=1001(postgres)
 $ pwd
 /usr/local/postgres
 $

B. Crear las variables de Ambiente.

Existen algunas variables que nos serán de gran ayuda para la administración de nuestro servidor. Las variables de ambiente se establecen en nuestro fichero de usuario .profile, que se encuentra en /home de nuestro usuario postgres.

Configuramos nuestras variables en “.profile” con nuestro editor favorito:

$ vim .profile
 ## Configuracio de Variables
 # ubicación del cluster
 export PGDATA=$HOME/data
 # ficheros de log del servidor
 export PGLOG=$PGDATA/pg-9.1.3.log
 # Directorio donde se encuentran las fuentes
 export PGSRC=$HOME/src/postgresql-9.1.3
 # Ruta donde se instala postgres
 export PGHOME=$HOME/pgsql
 # Ruta a los binarios/programas de postgres
 export PGBIN=$PGHOME/bin
 ##
 export PATH=$PATH:$PGBIN
 export MANPATH=$MANPATH:$PGHOME/man
 export LD_LIBRARY_PATH=$PGHOME/lib:$LD_LIBRARY_PATH
 export PGHOST=$(hostname)
 export PGPORT=5432
 ## Podemos Mostrarlas en el momento
 # que nos autentiquemos.
 echo PGDATA = $PGDATA
 echo PGLOG = $PGLOG
 echo PGSRC = $PGSRC
 echo PGHOME = $PGHOME
 echo PGBIN = $PGBIN
 echo
 echo PATH = $PATH
 echo MANPATH = $MANPATH
 echo LD_LIBRARY_PATH = $LD_LIBRARY_PATH

Actualizamos nuestro ambiente:

$ source .profile

3. Instalación de Postgres.

A. Configuraciones

Creamos el directorio para descargar las fuentes.

 $ mkdir -p $PGSRC
 $ cd src
Descargamos las fuentes.
$ wget -c ftp://ftp.postgresql.org/pub/source/v9.1.3/postgresql-9.1.3.tar.gz
Descomprimimos las fuentes.
$ tar -xvvzf postgresql-9.1.3.tar.gz
Ingresamos a las fuentes.
$ cd $PGSRC
Instalación de dependencias.

paquetes: gcc, make, zlib, readline, gettext, tcl, libgss1, libpq5, openssl(si queremos conexiones SSL).
librerías: libssl-dev, libreadline6-dev, libpam0g-dev, libldap-dev, python-dev, libperl-dev
uuid-dev, libxslt-dev, libossp-uuid-dev, tcl-dev, libgssdp-1.0-dev, libgss-dev, libpam-dev, libpq-dev

Podemos leer el fichero de instalación en $PGSRC/INSTALL e instalar los requerimientos ahí indicados.

$ less $PGSRC/INSTALL

B. Proceso de Instalación

Configuración.

Este proceso lo realizamos con el fichero “configure” que se encuentra en el directorio $PGSRC. Este fichero nos permite determinar si se cumplen los requerimientos para realizar la instalación con el parámetro –help podemos ver las distintas opciones de instalación.

$ ./configure --help
$ ./configure --prefix=$PGHOME --with-gnu-ld --enable-nls --enable-integer-datetimes --enable-thread-safety --enable-debug --disable-rpath --with-tcl --with-perl \
--with-python --with-pam --with-openssl --with-libxml --with-libxslt --with-ldap --with-ossp-uuid --with-tclconfig=/usr/lib/ --with-includes=/usr/include/tcl8.4 \
--with-system-tzdata=/usr/share/zoneinfo --with-pgport=5432 --without-zlib
compilación.
 $ make
instalación.
 # make install

4. Puesta en Marcha

A. Creacion del Cluster.

El cluster lo creamos con initdb con el cual determinamos la ubicación física y el juego de caracteres. Las opciones más usadas son:

-D path | –d=path. establece la ubicación del cluster.
-E juego_de_caracteres | –e=juego_de_caracteres. si no lo indicamos, toma el del S.O.
-U usuarios | –u=usuario. establece el superusuario del cluster.
-W clave | –w=clave. establece la clave del superusuario del cluster.
–locale=es_CO.UTF-8 | es_ES
–locale=C -> inglés
–encoding=LATIN1, utf8, SQL_ASCII

Yo tengo dos formas de crear mi cluster; una con la configuración internacional (por así decirlo):

 $ initdb --pgdata=$PGDATA --locale=C --encoding=SQL_ASCII

y otra con mi configuración local:

 $ initdb --pgdata=$PGDATA --encoding=utf8 -U postgres

Todo depende de para qué vayamos a usar las bases de datos.

B. Inicio del servidor.

$ postgres -D $PGDATA
o
$ pg_ctl -D $PGDATA -l $PGLOG start

5. Testing

 $ ps aux | grep postgres
 postgres 22396 0.6 0.4 42664 4720 pts/1 S 15:44 0:00 /usr/local/postgres/pgsql/bin/postgres -D /usr/local/postgres/data
 postgres 22398 0.0 0.1 42664 1368 ? Ss 15:44 0:00 postgres: writer process
 postgres 22399 0.0 0.1 42664 1264 ? Ss 15:44 0:00 postgres: wal writer process
 postgres 22400 0.0 0.1 42800 1420 ? Ss 15:44 0:00 postgres: autovacuum launcher process
 postgres 22401 0.0 0.1 13984 1172 ? Ss 15:44 0:00 postgres: stats collector process

Para parar el servidor ejecutamos:

$ pg_ctl stop

Con esto ya debemos tener un servidor PostgreSQL funcionando de forma básica. Sólo nos resta configurar el script de arranque, rendimiento, conexiones, seguridad y un sistema de backup que se acomode a las necesidades de nuestos requerimientos.

Author: Jolth

Anuncios

Responder

Introduce tus datos o haz clic en un icono para iniciar sesión:

Logo de WordPress.com

Estás comentando usando tu cuenta de WordPress.com. Cerrar sesión / Cambiar )

Imagen de Twitter

Estás comentando usando tu cuenta de Twitter. Cerrar sesión / Cambiar )

Foto de Facebook

Estás comentando usando tu cuenta de Facebook. Cerrar sesión / Cambiar )

Google+ photo

Estás comentando usando tu cuenta de Google+. Cerrar sesión / Cambiar )

Conectando a %s