一般说来,一个现代的与 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,则使用这个库.)
要在 Windows NT 或者 Windows 2000 上制作,你需要 Cygwin 和cygipc 包. 参阅文件 doc/FAQ_MSWIN 获取细节.
下列包是可选的。在缺省配置的时候并不要求它们,但是如果打开了一些制作选项之后就需要它们了,如下面解释的。
要制作服务器端编程语言 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 的安装,包括头文件。 因为 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,以提供这个共享库。
问题是 Python 发布或者 Python 的维护人员并没有提供实现这些东西的直接方法。 我们可以提供给你的最接近的信息是在 Python FAQ 3.30 里。 在一些操作系统里你实际上并不用真正制作一个共享库,但是你可能需要骗取PostgreSQL的制作系统的信任。 参考在 src/pl/plpython 目录里的 Makefile 获取细节。
如果你想制作 Tcl 或者 Tk 部件(客户端和 PL/Tcl 语言), 你当然需要安装 Tcl 了。
要制作 JDBC 驱动,你需要 Ant 1.5 或者更高版本, 以及一个 JDK。Ant 是一个制作基于 JAVA 的包的特殊工具。可以从 Ant 网站下载。
如果你安装了好几个 Java 编译器,那么选择哪个则依赖于 Ant 的配置。 预编译的 Ant 发布通常设置了读取当前用户家目录中的文件 .antrc 来获得配置。 比如,要使用一个和缺省不同的 JDK,下面这样的命令可能会有用:
JAVA_HOME=/usr/local/sun-jdk1.3 JAVACMD=$JAVA_HOME/bin/java
注意: 不要试图通过直接调用 ant 或者甚至是 javac 来制作驱动。这样没用的。按照下面描述的那样正常地运行 gmake。
要打开本地语言支持 (NLS),也就是说, 用英语之外的语言显示程序的信息,你需要一个 Gettext API 的实现。有些操作系统内置了这些(比如 Linux, NetBSD, Solaris), 对于其它系统,你可以从这里:http://www.postgresql.org/~petere/gettext.html 下载一个额外的包。如果你在使用 GNU C 库里面的 gettext 实现, 那么你就额外需要 GNU Gettext 包,因为我们需要里面的几个工具程序。对于任何其它的实现,你应该不需要它。
Kerberos,OpenSSL,或者 PAM, 如果你想支持使用这些服务的认证,那你需要这些包。
如果你从CVS树中制作,而不是使用发布的源代码包,或者你想做一些开发, 那么你还需要下面的包:
如果你需要从 CVS 抄出中制作,或者你修改了扫描器和分析器的定义文件, 那么你需要 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命令检查磁盘空间.