Como compilar PostgreSQL en Ubuntu
27 de Enero 2006 9:01 PM porQué es PostgreSQL
PostgreSQL es un podoros sistema de administración de bases de datos relacionales de código abierto. Tiene mas de 15 años de activo desarrollo y una probada arqutectura que se ha ganado una sólida reputación por su desempeño, integridad de datos y alta disponibilidad. Cumple completamente con las pruebas ACID, tiene soporte completo para claves foráneas, uniones, vistas, disparadores y procedimientos almacenados (en múltiples lenguajes). Incluye la mayoría de los tipos de datos SQL92 y SQL99, incluyendo INTEGER, NUMERIC, BOOLEAN, CHAR, VARCHAR, DATE, INTERVAL, y TIMESTAMP. También soporta el almacenaje de grandes objetos binarios, incluyendo imágenes, sonidos y vídeo. Tiene interfaces de nativas de programación para C/C++, Java, Perl, Python, Ruby, Tcl, ODBC entre otras y una documentación extraordinaria.Instalación
Dónde obtenerlo
Primero debemos descargar la última versión (el día de hoy la 8.1.2) de uno de los servidores espejos de PostgreSQL. Necesitamos este archivo: postgresql-8.1.2.tar.bz2.Variables de entorno
Para mejorar en algo el desempeño de PostgreSQL podemos definir una serie de variables para el compilador llamadas CFLAGS; estas son las mías:
-
CHOST=”i686-pc-linux-gnu”
-
CFLAGS=”-O3 -march=pentium-m -pipe -fomit-frame-pointer”
-
CXXFLAGS=”${CFLAGS}”
-
export CHOST CFLAGS CXXFLAGS
Desempaquetando las fuentes
Para desempaquetar las fuentes ejecutamos el siguiente comando en el directorio destino:-
tar xvfj ~/descargas/postgresql-8.1.2.tar.bz2
Configuración
Esta es una de las etapas más importantes, ya que aquí elegimos las características que tendra nuesto postgres. Estas son las más importantes:-
- ./configure
- Este guión ejecuta una serie de pruebas para conocer las dependencias necesarias que necesita postgres para poder compilarse, al final, si se cumplen con todos los requisitos y se pasan todas las pruebas, se crean los archivo para make. Usaremos las siguientes variables para su creación.
- -datadir=/home/postgres
- Establece el directorio para los archivos de solo lectura usados por los programas instalados. No tiene nada que ver con el lugar donde se almacenan los datos.
- -with-perl
- Construye el lenguaje del lado del servidor PL/Perl.
- -with-python
- Construye el lenguaje del lado del servidor PL/Python.
- -with-tcl
- Construye el lenguaje del lado del servidor PL/Tcl
- -with-openssl
- Construye el soporte para conexiones SSL (encriptadas).
- -enable-integer-datetimes
- Usa un enteros de 64 bits para almacenar horas, fechas e intervalos de tiempo, en lugar del tipo punto flotante que se usa por omisión.
- -enable-thread-safety
- Hace las librerías clientes seguras para los hilos.
- -enable-cassert
- Habilita comprobaciones tipo “cierto o falso” en el servidor, lo que prueba muchas condiciones de la clase “nunca pasaría”. Esto es invaluable para propósitos de desarrollo de código pero las pruebas hacen que las cosas vayan un poco lentas.
Si todo sale bien, y cumplimos con todas las dependencias podemos simplemente escribir make para que empiece la compilación.
Terminada la compilación instalamos los archivos usando el comando make install. Una vez terminado podemos configurar nuestro servicio.
Arranque
-
Creamos una cuenta para el usuario postgres, usando el comando
adduser postgres. Establecemos su directorio inicial como/home/postgres - Usando el comando
suno convertimos en el usuariopostgresy creamos el directorio/home/postgres/data. Apartir de este momento usamos este usuario. -
Creamos la instalación inicial con el comando “
initdb”, de la siguiente manera:/usr/local/pgsql/bin/initdb -D /home/postgres/data. La-Despecifica la ubicación de las bases de datos. - Ahora iniciamos el servidor:
/usr/local/pgsql/bin/postmaster -D /home/postgres/data. Esto incia el servidor en primer plano; para iniciarlo en segundo plano empleamos este comando:nohup /usr/local/pgsql/bin/postmaster -D /usr/local/pgsql/data >server.log 2>&1 - Para detener el servicio iniciado en segundo plano, empleamos este comando:
kill `cat /usr/local/pgsql/data/postmaster.pid` - Creamos una base de datos:
createdb testdbLuego escribimos:psql testdbpara conectarnos a esa base de datos.










