Compilando PostgreSQL en Windows

Anuncio
WikiPrint - from Polar Technologies
Índice
Visual C++ 2005
1. Requisitos:
2. Pasos para generar PostgreSQL y PgInstaller
Pasos para compilar PostgreSQL usando VC
1. Pasos para generar PgInstaller
4. Solución de problemas con VC:
MingW
1. Compilar el Servidor con Mingw
2. Compilar extenciones con Mingw
Compilando PostgreSQL en Windows
Visual C++ 2005
Esto es una guía para compilar PostgreSQL y generar el instalador en español (bajo windows).
Ver documentación oficial para más información.
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
Nota: Para probar sólo el instalador, y no tener que compilar PostgreSQL y todas sus dependencias y añadidos, se puede descomprimir el archivo de
instalación MSI y recrear el directorio de staging
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 usando VC
1
WikiPrint - from Polar Technologies
•
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>
Agregar el lenguaje español ({{es.xml}}} y es_welcome.rtf, y editar el archivo
C:\pgbuild\BuildTrees\pginst-8.3\lang\languages.projinc:
<Language Include="Item"><code>es</code><map>0407</map></Language>
•
Compilar e instalar PostgreSQL o crear los directorios de staging (si no se ha compilado PostgreSQL)
•
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 con VC:
•
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
MingW
Compilar el Servidor con Mingw
Si por algún motivo no se desea usar el paquete de instalación precompilado para windows (construido con Visual C++ 2005, ver arriba), se puede
compilar más facilmente con MINGW:
1. Instalar Mingw, MSYS y MSYS-DTK (y opcionalmente, zlib)
2. Descomprimir las fuentes, por ej. en C:\postgresql-9.0beta4 y situarse en este directorio
3. Establecer las rutas PATH=%path%;C:\MinGW\bin;C:\MSYS\1.0\bin
4. Ejecutar bash configure
5. Ejecutar make
2
WikiPrint - from Polar Technologies
Más información en la documentación oficial: http://www.postgresql.org/docs/9.0/static/installation-platform-notes.html
Una guía más detallada (en inglés) puede encontrarse en el proyecto PostGIS: http://trac.osgeo.org/postgis/wiki/UsersWikiWinCompile
Para compilar todas las características, seguramente necesite instalar OpenSSL, ZLib, GetText?, etc. (ver abajo).
Compilar extenciones con Mingw
Estas son las órdenes que se ejecutan para generar una biblioteca compartida usando Mingw:
1. Crear un directorio en contrib, por ej. foo
2. Crear el archivo de la extención, contrib/foo.c (ver adjunto)
3. Compilar la extención foo.c con C:\mingw\bin\gcc -O2 -Wall -Wmissing-prototypes -Wpointer-arith
-Wdeclaration-after-statement -Wendif-labels -fno-strict-aliasing -fwrapv -I. -I. -I../../src/include
-I./src/include/port/win32 -DEXEC_BACKEND "-I../../src/include/port/win32" -c -o foo.o foo.c
4. Compilar generar la biblioteca foo.dll con C:\mingw\bin\gcc -shared -o foo.dll foo.o
5. Copiar foo.dll al directorio lib (usualmente "C:\Archivos de Programa\PostgreSQL\9.0alpha4\lib")
6. Crear la función con CREATE FUNCTON add_one (INTEGER) RETURNS INTEGER AS '$libdir/foo.dll' LANGUAGE C STRICT
IMMUTABLE;
7. Ejecutar la función SELECT add_one(1); (debería devolver 2)
Nota: Cambiar el path ../../src a "C:\Archivos de Programa\PostgreSQL\9.0alpha4\include\server" si no se han compilado las fuentes (instalador
precompilado para windows). En la compilación, la mayoría de los parámetros son opcionales (fueron extraidos de una compilación estándar), los más
necesarios son los include (-I) y en especial el del port win32, sino falla bastante misteriosamente... Ejemplo:
C:\mingw\bin\gcc.exe -O2 -Wall -Wmissing-prototypes -Wpointer-arith -Wdeclaration-after-statement
C:\mingw\bin\gcc.exe -shared -o foo.dll foo.o
-Wendif-labels -fno-str
Si se está usando un instalador precompilado, además se deberá instalar los siguientes paquetes de GNUWin32 (en el directorio C:\MinGW para no
tener que agregar otro include):
•
zlib: http://kent.dl.sourceforge.net/sourceforge/gnuwin32/zlib-1.2.3.exe
•
GetText: http://kent.dl.sourceforge.net/sourceforge/gnuwin32/gettext-0.14.4.exe
•
dependencias de GetText?: http://kent.dl.sourceforge.net/sourceforge/gnuwin32/gettext-0.14.4-dep.zip
Más información en la documentación oficial: http://www.postgresql.org/docs/9.0/static/xfunc-c.html
3
Descargar