在 Windows 中编译 PostgreSQL 和 pgInstaller

PostgreSQL wiki
跳转到导航跳转到搜索

简介

该指南用来编译 PostgreSQL 和生成西班牙语安装程序(在 Windows 下)。更多信息请参见

这些步骤已在 Windows XP SP2(2600)西班牙语版(阿根廷)中得以验证。

要求

  • 安装 VC++ 2005 快捷版
  • 安装 Active Perl
  • 安装 Microsoft Platform SDK
  • 安装 Wix
  • 安装对应的其他依赖项
    • OpenSSL(用于 SSL 连接)
    • Kerberos(用于验证)
    • Gettext 和 iconv(用于 NLS)
    • Python 2.5(用于 pl/python)
    • TCL(用于 pl/tcl)
    • XML2、XSLT 等(用于 xml)
    • ZLib(用于压缩转储)
  • 下载并编译 Windows 安装程序中的附加功能
    • PgAdmin3
    • StackBuilder
    • PlJava
    • pldebugger

生成 PostgreSQL 和 PgInstaller 的步骤

  • 创建一个 c:\pgBuild 目录
  • 创建一个 c:\pgBuild\BuildTrees 目录
  • 下载 postgresql 的源代码 (tar.bz2),将其解压缩到 c:\pgBuild\BuildTrees\pgsql
  • 从 cvs 中下载安装程序的源代码,保存到 c:\pgBuild\BuildTrees\pginst-8.3
  • 找到安装程序 ZIP 文件中的 vcredist_x86.exe 文件,将其复制到 c:\pgBuild\vcredist_x86 文件夹

编译 PostgreSQL 的步骤

  • 编辑 c:\pgBuild\BuildTrees\pgsql\src\tools\msvc\config.pl 文件,并启用/禁用要编译的功能(对于安装程序,应编译所有功能)。
  • 启动“Visual Studio 2005 命令提示符”
cd c:\pgBuild\BuildTrees\pgsql\src\tools\msvc\
build
install c:\pgBuild\pginst-8.3\pgsql
  • 编译帮助(在 Unix 中),使用 Html Help Workshop(在 Windows 中)对其进行处理,并将其复制到 pgsql\doc\htmlhelp.chm

生成 PgInstaller 的步骤

  • 将 paths.projinc.in 复制到 pginst-8.3 中的 paths.projinc,并更改以下行
<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>
  • 编译并安装 PostgreSQL(前一步骤)
  • 更新添加的包(pgAdmin、plDebugger、plJava、!StackBuilder)
  • 启动“Visual Studio 2005 命令提示符”
cd c:\pgBuild\BuildTrees\pginst-8.3
msbuild /t:clean
msbuild

解决方案:

  • 无法加载 VCProjEngine.DLL:复制本地化的 dll(适用于西班牙语,将 vcpackages\3082\*.dll vcpackages 复制到 visual studio 文件夹中)(了解更多
  • 找不到 vjslib.dll:安装 Visual J# Redistributable(了解更多
  • “windows.h”:没有此类文件或目录:安装 Microsoft Platform SDK,并更新 vsvars32.bat 中的路径(在 visual studio 的 common\bin 文件夹中)
@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

在 Linux 中编译 PostgreSQL

从源码

  • mirrors 下载源码并解压缩,本例使用版本 8.3.3,其中
tar -xvzf postgresql-8.3.3.tar.gz
  • 在 Centos(C 编译器、链接器、开发库)、Debian 和 Ubuntu 中编译前,需要先安装 build-essential 以及另外两个库 libreadline5-dev zlib1g-dev
apt-get install libreadline5-dev zlib1g-dev build-essential

对于 Centos

yum install bison gcc 
  • INSTALL 文件包含以下具体说明,用于从源码进行安装
./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

请注意,数据库可以放置在其他位置,例如建议将其放在 /var 中而不是 /usr 中 ,这会改变第 6、7、9 和 10 行,即把 /usr 替换为 /var。

  • 应复制该文件以启动自动服务,作为超级用户
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