Cómo instalé PostgreSQL en Mac OS X Leopard

4.5.08. Por ooscarr (ooscarr)
PostgreSQL

El último sistema operativo de Apple, incluído en el iPhone, viene con MySQL pero no incluye el poderoso sistema de bases de datos OpenSource PostgreSQL. Y para los sistemas UNIX no proveen un archivo binario de fácil instalación suponiendo que es sencillo para todos los realmente interesados. Aquí entrego una guía típica de instalación de este tipo de programas que sirve tanto para Mac OS X, Linux, BSD y UNIX en general. Es para todos lo mismo.

Primero

  1. Instalar las Developer Tools que vienen en el DVD de Leopard. Se recomienda descargar la última versión más conocida por estos días como iPhone SDK aunque no tenga nada que ver con el iPhone.
  2. Descargar la última versión de PostgreSQL desde postgresql.org (los .md5 son las firmas digitales, no los archivos que queremos). De preferencia, en el escritorio.
  3. Hacer doble click en el archivo recién descargado para que se descomprima y ya tenemos la carpeta para compilar.

Compilar PostgreSQL

  1. Abrimos el Terminal (Aplicaciones > Utilidades > Terminal)
  2. Escribimos el comando
    $ cd
    luego espacio, arrastramos y soltamos la carpeta recién descomprimida en la ventana del Terminal para que quede la ruta escrita en la misma línea. Enter (o return). Debería quedar algo como:
    $ cd /Users/ooscarr/Desktop/postgresql-8.3.1 

Configure

Antes de comenzar a compilar, hay que generar los Makefiles. Esto se hace ejecutando el script incluido configure con parámetros opcionales. El comando y los parámetros que elegí fueron los siguientes:

./configure --enable-thread-safety \
                    --without-docdir \
                    --with-perl \
                    --with-gssapi \
                    --with-pam \
                    --with-bonjour \
                    --with-openssl

No usé --prefix= porque no tengo problemas en que Postgres se instale en /usr/local. Tampoco --exec-prefix= porque no necesito que sea independiente de la plataforma, es para instalarlo aquí mismo.

En general no recomiendo personalizar las carpetas donde Postgres va a instalar sus archivos, para tener una instalación de lo más normal y conocida que permitan pedir ayuda para arreglar problemas sin complicaciones. Leopard, como UNIX, viene con readline instalado, así que no hay muchas complicaciones. El --without-docdir es para que no instale la documentación en inglés, pero lo puedes obviar sin problemas.

El --enable-dtrace suena tentador, pero no es necesario ya que no vamos a analizar el proceso de compilación y, según el archivo README, ahora sólo tiene soporte para Solaris (un muy buen sistema operativo para desarrolladores).

Al presionar return se demora un poco porque está revisando las librerías, el sistema, etc. Debería aparecer una lista de checking y unas config.status. Todo normal.

Make

Estamos listos con el código fuente, ahora falta compilar. Comando:

$ make

Éste se demora más, ocupa más el procesador, pero en unos minutitos debería haber terminado con la frase:

All of PostgreSQL successfully made. Ready to install.

Ya. Está listo para instalar.

Instalación

La instalación es igual de fácil. Lo único que hay que hacer (por ahora) es escribir:

$ sudo make install

Lo típico. Si pide la password, la escribimos y listo. La contraseña no aparecerá en pantalla.

PostgreSQL installation complete.

Eso es todo. PostgreSQL está instalado en /usr/local/pgsql/

pgAdmin III

Antes de seguir, sería bueno instalar la última versión del software pgAdmin III cuya instalación es tan fácil como la mayoría de las instalaciones de Mac OS X: arrastrar un archivo a la carpeta de Aplicaciones.

Crear la base de datos

Al igual que en Windows, se estila crear un usuario dedicado para que PostgreSQL administre los datos. Más bien es un requisito. En mi caso voy a guardar los datos en la carpeta /usr/local/pgsql/data como viene por defecto, pero esto cambia según la necesidad y configuración personal de cada usuario. Para crear la carpeta ahí, utilizo el famoso comando:

$ mkdir /usr/local/pgsql/data

Después hay que crear el usuario. Y como no me molesta tener un usuario más en la pantalla de inicio de sesión (si tienes el inicio de sesión automático, ni lo vas a ver), lo creo normalmente desde Preferencias del Sistema > Cuentas > +

Pantalla de Agregar nuevo usaurio de Mac OS X

Bueno, ahora que existe el usuario postgres, hacemos que la carpeta /usr/local/pgsql/data pertenezcan a este nuevo usuario.

$ sudo chown postgres /usr/local/pgsql/data

Para inicializar la base de datos, debemos entrar a la cuenta de postgres con

$ su -l postgres

Y la inicializamos por primera vez con el script:

/usr/local/pgsql/bin/initdb -D /usr/local/pgsql/data

Al finalizar, aparecerán dos líneas muy importantes, ya que estos comandos se usarán para iniciar el servidor de postgresql para que funcione. En mi caso iniciaré el servidor de PostgreSQL con:

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

Y lo terminaré con:

/usr/local/pgsql/bin/pg_ctl -D /usr/local/pgsql/data -l logfile stop

Cabe recordar que estos comandos sólo funcionan desde el usuario postgres así que siempre habrá que iniciar su sesión escribiendo antes:

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

Ahora que está el servidor corriendo, podemos cerrar todas las ventanas.

Crear los usuarios

La forma más fácil de crear los usuarios es abrir el software pgAdmin3, presionar el ENCHUFE para crear un nuevo servidor dentro del programa con los datos conocidos:

Agregando servidor localhost en pgAdmin III para Mac OS X

Una vez conectado, creamos un nuevo usuario desde Editar > Nuevo Objeto > Nueva rol de Login...

Editar > Nuevo Objeto > Nueva rol de Login...

Aquí se pueden usar nuestros propios datos que se usarán para conectarnos desde los códigos que podamos estar escribiendo.

Agregando datos de usuario de PostgreSQL en pgAdmin III para Mac OS X

Ya podemos crear una nueva base de datos

Menú contextual Crear nueva base de datos

Para el nuevo usuario recién creado

Asignando usuario de nueva base de datos
Recomiendo utilizar la condificación UTF-8 como estándar si vamos a usar caracteres que no están en el idioma inglés, como la é con tilde.

Si nos desconectamos (con el mismo ENCHUFE), por seguridad deberíamos ir a Propiedades

Menú contextual Propiedades de la base de datos

... Y cambiar el nombre de la base de datos (BD de Mantenimiento) y el usuario dueño de esa base datos que recién configuramos.

Cambiando datos de base de dato PostgreSQL en PgAdmin III para Mac OS X

Cuando nos volvamos a conectar, nos va a volver a pedir la contraseña del usuario nuevo.

Por favor ingrese la contraseña

Y una vez conectados a la base de datos local, deberíamos tener un PostgreSQL completo funcionando en nuestro computador.

Tablas, triggers y vistas de PostgreSQL en PgAdmin III en español

Palabras finales

Aprendimos a instalar PostgreSQL de manera sencilla en la máquina local desde el código fuente. Ahora sólo me falta aprender a hacer que se inicie automáticamente cada vez que se enciende el computador o crear un alias que inicie la base de datos con un simple doble click y sin escribir los complicados comandos:

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

Referencias

Etiquetas: , , ,