PostgreSQL 9.4.4 中文手册
上一页 | 上一级 | 章 15. 源码安装 | 下一页

# 15.2. 要求

一般说来，一个现代的与 Unix 兼容的平台应该就能运行PostgreSQL。 第 15.6 节列出了到发布为止已经明确测试过的平台。 在发布的`doc`子目录里面有许多平台相关的FAQ， 如果你碰到问题你可能会需要参考它们。

编译PostgreSQL需要下面的软件包：

- 需要GNU make的3.80版本或者更新版本； 不能使用其它make 程序或者老版本的GNU make。 GNU make有时被安装为`gmake`的名字。 要想测试GNU make，敲入：

      make --version

- 你需要一个ISO/ANSI C编译器（至少C89-标准）。 我们推荐使用最近版本的GCC。不过， 众所周知的是PostgreSQL可以利用许多不同厂商的不同编译器进行编译。

- 除了gzip或者bzip2之外，还需要tar来解开发布。

- 缺省时将自动使用GNU Readline库 它允许psql（PostgreSQL命令行SQL解释器）记住每个键入的命令， 并允许你使用箭头键来调用和编辑以前的命令。这是非常有帮助的，强烈推荐。 如果你不想用它，那么你必需给`configure`声明`--without-readline`选项。 作为替代，你可以经常使用BSD许可的`libedit`库，最初 在NetBSD上开发的。 如果没有发现`libreadline`，或者如果为`configure`指定`--with-libedit-preferred`， 可以使用与GNU Readline兼容的`libedit`库。 如果你使用的是一个基于包的 Linux 发布，那么要注意你需要`readline`和`readline-devel`两个包， 特别是如果这两个包在你的版本里是分开的时候。

- 缺省的时候将使用zlib压缩库。如果你不想使用它， 那么你必须给`configure`声明`--without-zlib`选项。 使用这个选项关闭了在pg_dump和 pg_restore里面压缩归档的支持。

下列包是可选的。在缺省配置的时候并不要求它们， 但是如果打开了一些编译选项之后就需要它们了，如下面解释的:

- 要编译PL/Perl服务器端编程语言，你需要一个完整的Perl安装， 包括`libperl`库和头文件。因为PL/Perl是一个共享库， `libperl`库在大多数平台上也必须是一个共享库。 最新版本的Perl好像已经是缺省这么做了，但是早先的版本可不是这样的， 而且在任何安装了Perl的地方总是可选的。 如果你打算不是偶尔使用PL/Perl的话， 你应确保编译带有`usemultiplicity`启用选项的Perl安装 （`perl -V`将显示是否是这种情况）。

  如果没有共享库，但却需要它，那么在PostgreSQL编译过程中将看到下面的信息，指出这个问题：

      *** 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的过程中，要求一个共享库。

- 要编译PL/Python服务器端编程语言，你需要一个Python的安装， 包括头文件和distutils模块。 最小所需版本是Python2.3。 （要与类型`numeric`的函数参数一起工作，2.3.X的安装必须包括单独可用的 `cdecimal`模块；请注意，如果缺少这个，PL/Python 的回归测试将不会通过。） 如果版本是3.1或者更高版本，则支持Python 3；但是当使用Python 3的时候， 则参阅 第 43.1 节。

  因为PL/Python将以共享库的方式编译， `libpython`库在大多数平台上也必须是一个共享库。 在缺省的Python安装时不是这样的。如果在编译和安装PostgreSQL之后， 你有一个叫做`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`标志运行Python 2.3或更高版本的configure 脚本。 在有些操作系统上，你不必非要编译一个共享库，不过你需要让PostgreSQL的编译系统知道这些。 参考`src/pl/plpython`目录中的`Makefile`获取细节。

- 如果想编译PL/Tcl过程语言，那么当然需要安装Tcl了。 如果你使用Tcl先前的8.4版本，应该确保它编译时没有多线程支持。

- 要打开本地语言支持(NLS)，也就是说，用英语之外的语言显示程序的信息， 你需要一个Gettext API的实现。 有些操作系统内置了这些(比如Linux, NetBSD, Solaris)， 对于其它系统，你可以从 http://www.gnu.org/software/gettext/下载一个额外的包。 如果你在GNU C库里面使用Gettext实现， 那么你就额外需要GNU Gettext包， 因为我们需要里面的几个工具程序。对于任何其它的实现，你应该不需要它。

- Kerberos, OpenSSL, OpenLDAP,和/或者PAM， 如果你想支持使用这些服务的认证或者加密，那你需要这些包。

- 为了编译PostgreSQL文档，有一套独立要求；参阅 第 J.2 节.

如果你从Git树中编译，而不是使用发布的源代码包， 或者你想做一些服务器端的开发， 那么你还需要下面的包：

- 如果你需要从Git检出中编译，或者你修改了扫描器和分析器的定义文件， 那么你需要Flex和Bison。如果你需要它们， 那么确保自己拿到的是Flex 2.5.31或更新的版本，以及Bison 1.875或者更新的版本。 其它的lex和yacc程序肯定是不行的。

- 如果需要从Git检出中编译或者如果需要改变使用Perl脚本的任何编译步骤的输入文件，那么 需要Perl 5.8或者更新版本。如果在Windows上编译，那么你在任何情况下都需要 Perl。要运行某些测试套件，也需要Perl。

如果你需要获取GNU包，你可以在GNU镜像站点 http://www.gnu.org/order/ftp.html或者ftp://ftp.gnu.org/gnu/ 找到它们。

请检查一下，看看你是否有足够的磁盘空间。 你将大概需要近100MB 用于存放安装过程中的源码树和大约20MB用于安装目录。 一个空数据库大概需要35MB。 在存放相同的数据时，数据库大概需要文本文件五倍的存储空间。 如果你要运行回归测试，还临时需要额外的150MB 。 请用`df`命令检查剩余磁盘空间。

上一页 | 起始页 | 下一页
简版 | 上一级 | 获取源码