Compilación de PostgreSQL y pgInstaller en Windows
From PostgreSQL wiki
Jump to navigationJump to searchIntroducción
Esto es una guía para compilar PostgreSQL y generar el instalador en español (bajo windows). Para más información ver:
Estos pasos fueron probados en la versión de Windows XP SP2 (2600) en Español (Argentina)
Requisitos:
- Instalar VC++ 2005 Express Edition
- Instalar Active Perl
- Instalar Microsoft Platform SDK
- Instalar Wix
- Instalar el resto de las dependencias que correspondan:
- OpenSSL (para conexiones SSL)
- Kerberos (para autenticación)
- Gettext y iconv (para NLS)
- Python 2.5 (para pl/python)
- TCL (para pl/tcl)
- XML2, XSLT, etc. (para xml)
- ZLib (para compresión de dumps)
- etc.
- Bajar y compilar los añadidos en el instalador de windows:
- PgAdmin3
- StackBuilder
- PlJava
- pldebugger
Pasos para generar PostgreSQL y PgInstaller
- Crear un directorio c:\pgBuild
- Crear un directorio c:\pgBuild\BuildTrees
- Bajar las fuentes de postgresql (del tar.bz2) y descomprimirlas en c:\pgBuild\BuildTrees\pgsql
- Bajar las fuentes del instalador (desde cvs) en c:\pgBuild\BuildTrees\pginst-8.3
- Buscar el archivo vcredist_x86.exe del ZIP del Instalador y copiarlo a la carpeta c:\pgBuild\vcredist_x86
Pasos para compilar PostgreSQL
- Editar el archivo c:\pgBuild\BuildTrees\pgsql\src\tools\msvc\config.pl y habilitar/deshabilitar las características a compilar (para el instlador, deberían compilarse todas las características).
- Iniciar el 'Símbolo del Sistema Visual Studio 2005':
cd c:\pgBuild\BuildTrees\pgsql\src\tools\msvc\ build install c:\pgBuild\pginst-8.3\pgsql
- Compilar la ayuda (en un unix), procesarlo con Html Help Workshop (en windows) y copiarlo a pgsql\doc\htmlhelp.chm
Pasos para generar PgInstaller
- Copiar paths.projinc.in a paths.projinc dentro de pginst-8.3 y cambiar las siguientes líneas:
<WixDir>C:\Archivos de Programa\Windows Installer XML v3\bin</WixDir> <PKGDIR>$(PGBUILD)\pginst-8.3</PKGDIR> <MSVCMSMS>C:\Archivos de Programa\Archivos Comunes\Merge Modules</MSVCMSMS> <MSVCREDIST>C:\pgbuild\vcredist_x86</MSVCREDIST>
- Compilar e instalar PostgreSQL (paso anterior)
- Actualizar los paquetes añadidos (pgAdmin, plDebugger, plJava, !StackBuilder)
- Iniciar el 'Símbolo del Sistema Visual Studio 2005':
cd c:\pgBuild\BuildTrees\pginst-8.3 msbuild /t:clean msbuild
Solución de problemas:
- No puede cargar VCProjEngine.DLL: Copiar las dll localizadas (copy vcpackages\3082\*.dll vcpackages para español, en la carpeta de visual studio) (ver más)
- No se puede encontrar vjslib.dll: Instalar Visual J# Redistributable (ver más)
- 'windows.h': no such file or directory: Instalar el Microsoft Platform SDK y actualizar los paths en vsvars32.bat (en la carpeta common\bin del visual studio):
@set PATH=...;%PATH%;C:\Archivos de programa\Microsoft SDKs\Windows\v6.1\Bin @set INCLUDE=...;%INCLUDE%;C:\Archivos de programa\Microsoft SDKs\Windows\v6.1\Include @set LIB=...;%LIB%;C:\Archivos de programa\Microsoft SDKs\Windows\v6.1\Lib
Compilar PostgreSQL en Linux
Desde el cógido fuente
- Cuando se baja el código fuente desde mirrors y se descompacta en este caso está la versión 8.3.3 con:
tar -xvzf postgresql-8.3.3.tar.gz
- Hay un detalle para poder compilar en Centos (compilador C, linker, librerías de desarrollo), Debian y Ubuntu hay que instalar antes el build-essential, y 2 librerias más libreadline5-dev zlib1g-dev):
apt-get install libreadline5-dev zlib1g-dev build-essential
Para Centos
yum install bison gcc
- En el fichero INSTALL vienen las siguientes especificaciones mediante las cuales podemos instalarlo desde los fuentes:
./configure gmake su gmake install adduser postgres --crea el usuario postgres mkdir /var/lib/pgsql/data --crea la carpeta de los datos chown postgres /var/lib/pgsql/data --otorga privilegios a postgres sobre los datos su - postgres /usr/local/pgsql/bin/initdb -D /var/lib/pgsql/data --inicializa el cluster /usr/local/pgsql/bin/postgres -D /var/lib/pgsql/data >logfile 2>&1 & /usr/local/pgsql/bin/createdb test -- crea base de datos de prueba /usr/local/pgsql/bin/psql test --abre la base de datos de prueba
Es de notar que la base de datos puede estar en otro lado por ejemplo es aconsejable ponerla en /var en vez de en /usr esto cambiaría la línea 6, 7 , 9 y 10 que en vez de /usr sería /var .
- Se debe copiar el fichero para arrancar el servicio automático como superusuario
cp contrib/start-scripts/linux /etc/init.d/postgresql chmod 710 /etc/init.d/postgresql update-rc.d postgresql start 45 S . start 20 1 2 3 . stop 30 4 5 . chkconfig postgresql on --para Centos