一般说来,一个现代的与 Unix 兼容的平台应该就能运行 PostgreSQL。 到发布为止已经明确测试过的平台的列表在 Section 14.7列出。 在发布的 doc 子目录里面有许多平台相关的 FAQ,如果你碰到问题你可能会需要参考它们。
制作 PostgreSQL 需要下面几样东西:
制作 PostgreSQL 需要 GNU make; 这个制作过程不能使用其他的make 程序。 GNU make常被安装为 gmake的名字。本文档将一直使用这个名字称呼她。 (在一些系统上GNU make是名字叫 make的缺省工具。)要想测试 GNU make,敲入
gmake --version
我们建议使用版本 3.76.1 或者更新的版本。
你需要一个 ISO/ANSI C 编译器。我们推荐使用最近版本的 GCC,不过,众所周知的是 PostgreSQL 可以利用许多不同厂商的不同编译器进行编译。
我们需要先用 gzip 将版本解压缩。
缺省时将自动使用 GNU Readline, (这样你可以方便地编辑和检索命令历史。) 如果你不想用它,那么你必需给 configure 声明 --without-readline 选项。 (在 NetBSD 上,libedit 库是 readline 兼容的, 如果没有发现 libreadline,则使用这个库。) 如果你使用的是一个基于包的 Linux 发布,那么要注意你需要 readline 和 readline-devel 两个包,特别是如果这两个包在你的版本里是分开的时候。
在 Windows 上安装 PostgreSQL 需要额外的软件。 你可以用 MinGW 制作基于 NT (比如 Windows XP 和 2003) 的 PostgreSQL Windows 版本; 参阅 doc/FAQ_MINGW 获取细节。 你也可以用 Cygwin 制作 PostgreSQL; 参阅 doc/FAQ_CYGWIN。 基于 Cygwin 的制作可以在更老的 Windows 版本上运转, 不过如果你可以选择,我们还是建议 MinGW 方法。 尽管这些是完整制作时我们建议的工具集,但我们还是可以使用其它 Windows 工具集制作 C 库 (libpq)和交互终端(psql)。 更多细节详见 Chapter 15
下列包是可选的。在缺省配置的时候并不要求它们,但是如果打开了一些制作选项之后就需要它们了,如下面解释的。
要制作服务器端编程语言 PL/Perl,你需要一个完整的Perl安装, 包括 libperl 库和头文件。 因为 PL/Perl 是一个共享库, libperl 库在大多数平台上也必须是一个共享库。 最近的版本的 Perl 好像这么做已经是缺省了,但是早先的版本可不是这样的, 而且这总是是给你安装 Perl 的人的选择。
如果你没有共享库,而你却需要它,那么在制作过程中看到下面的信息, 指出这个问题:
*** Cannot build PL/Perl because libperl is not a shared library. *** You might have to rebuild your Perl installation. Refer to *** the documentation for details.
(如果你不按照屏幕输出的指示去做,那么你只会注意到 PL/Perl 库对象, plperl.so 或者类似的什么东西,不会安装到系统里。) 如果你看到这些东西,那么你就必须重新手工制作并安装 Perl,这样才能制作 PL/Perl。 在配置 Perl 的过程中,要求一个共享库。
要制作 Python 接口模块或者 PL/Python 服务器端编程语言, 你需要一个 Python 的安装,包括头文件和 distutils 模块。 对于 Python 1.6 或者更高版本,缺省时就带有 distutils 模块; 更早版本的 Python 需要自己安装它。
因为 PL/Python 将以共享库的方式制作, libpython 库在大多数平台上也必须是一个共享库。在缺省的 Python 安装时不是这样的。 如果在制作和安装之后, 你有一个叫做 plpython.so 的文件(可能扩展名会有所不同), 那么一切都好说,否则你应该回看到类似下面的信息飘过:
*** Cannot build PL/Python because libpython is not a shared library. *** You might have to rebuild your Python installation. Refer to *** the documentation for details.
这意味着你必须重新制作(一部分)你的 Python,以提供这个共享库。
如果有问题,用 --enable-shared 标志运行 2.3 或更高版本的 Python 的 configure。 在有些操作系统上,你不必非要制作一个共享库,不过你需要让 PostgreSQL 的制作系统知道这些。 参考 src/pl/plpython 目录的 Makefile 获取细节。
如果你想制作 PL/Tcl 语言, 你当然需要安装 Tcl 了。
要打开本地语言支持 (NLS),也就是说, 用英语之外的语言显示程序的信息,你需要一个 Gettext API 的实现。有些操作系统内置了这些(比如 Linux, NetBSD, Solaris), 对于其它系统,你可以从这里:http://developer.postgresql.org/~petere/bsd-gettext/ 下载一个额外的包。如果你在使用 GNU C 库里面的 gettext 实现, 那么你就额外需要 GNU Gettext 包,因为我们需要里面的几个工具程序。对于任何其它的实现,你应该不需要它。
Kerberos,OpenSSL,和/或 PAM, 如果你想支持使用这些服务的认证或者加密,那你需要这些包。
如果你从CVS树中制作,而不是使用发布的源代码包,或者你想做一些开发, 那么你还需要下面的包:
如果你需要从 CVS 抄出中制作,或者你修改了扫描器和分析器的定义文件, 那么你需要 GNU Flex 和 Bison。 如果你需要它们,那么确保自己拿到的是 Flex 2.5.4 或更新的版本, 以及 Bison 1.875 或者更新的版本。有时候也可以使用其它 yacc 程序,但是这样做要求额外的工作,因此我们不建议使用。 其它的 lex 程序肯定是不行的。
如果你需要获取 GNU 包,你可以在你的本地 GNU 镜像站点 (看看 http://www.gnu.org/order/ftp.html 或 ftp://ftp.gnu.org/gnu/make 找到她们。
请检查一下,看看你是否有足够的磁盘空间。 你将大概需要近 65MB 用于存放安装过程中的源码树和大约 15 MB 用于安装目录。 一个空数据库大概需要 25 MB。 然后在使用过程中大概需要在一个平面文本文件里存放同等数据量数据五倍的空间存储数据。 如果你要运行回归测试,还临时需要额外的 90MB。请用df命令检查剩余磁盘空间。