viernes, abril 25, 2014

Postgresql complilar pldebugger

Les dejo un paso a paso para compilar el pldebugger.

  • Descargar el código fuente de la versión de Postgresql que tengamos.
wget http://ftp.postgresql.org/pub/source/v9.1.13/postgresql-9.1.13.tar.gz
cd postgresql-9.1.13
  • Ir al directorio contrib/ y clonar el pldebugger
git clone http://git.postgresql.org/git/pldebugger.git
  • Corremos el ./configure de postgresql
Subimos un directorio, porque es el ./configure del fuente de postgres
 
cd ..
pg_config --configure | ./configure


El pg_config lo que hará es pasarle los parámetros al configure de nuestra instalación.
  • Compilamos el subdirectorio src/
cd src/
make


    Esto permite evitar este error:

~/postgresql-9.1.13/contrib/pldebugger$ make gcc -O2 -Wall -Wmissing-prototypes -Wpointer-arith -Wdeclaration-after-statement -Wendif-labels -Wformat-security -fno-strict-aliasing -fwrapv -fexcess-precision=standard -fpic -I../../src/pl/plpgsql/src -I. -I. -I../../src/include -D_GNU_SOURCE -c -o plpgsql_debugger.o plpgsql_debugger.c In file included from ../../src/include/postgres.h:48:0, from plpgsql_debugger.c:12: ../../src/include/utils/elog.h:69:28: error fatal: utils/errcodes.h: No existe el archivo o el directorio compilación terminada.
  • Ir al directorio contrib y clonar el pldebugger
git clone http://git.postgresql.org/git/pldebugger.git
cd pldebugger

  • Compilar e instalar
make
make install

  • Agregamos la referencia al plugin en postgresql.conf
Abrimos el archivo
sudo vim /etc/postgresql/9.1/main/postgresql.conf
   
Agregamos la variable shared_preload_libraries al final
shared_preload_libraries = '/usr/lib/postgresql/9.1/lib/plugin_debugger.so'

  • Reiniciamos en servicio postgresql
sudo service postgresql restart

  • Por último, instalar la extensión pldbgapi
CREATE EXTENSION pldbgapi;

En esta última parte tuve varios problemas con $libdir ya que en la instalación de postgresql indicaba un lugar distinto al make install del plugin. Yo lo solucione medio rustico copié la librería compilada al directorio donde postgresql guarda todos los .so y anduvo.

sudo cp /usr/local/pgsql/lib/plugin_debugger.so /usr/lib/postgresql/9.1/lib

Referencia: pldebugger.git