pg_config — 获取已安装 PostgreSQL 版本的信息
pg_config [option...]
pg_config 工具打印当前安装的 PostgreSQL 版本的配置参数。例如,想要与 PostgreSQL 打交道的软件包可以使用它,以便于找到所需的头文件和库。
要使用 pg_config,请提供下列选项中的一个或多个:
--bindir
打印用户可执行文件的位置。例如可以使用它来查找 psql 程序。这通常也是 pg_config 程序所在的位置。
--docdir打印文档文件的位置。
--htmldir打印 HTML 文档文件的位置。
--includedir打印客户端接口的 C 头文件的位置。
--pkgincludedir打印其他 C 头文件的位置。
--includedir-server打印用于服务器编程的 C 头文件的位置。
--libdir打印目标代码库的位置。
--pkglibdir打印可动态加载模块的位置,或服务器将在何处搜索它们。(其他与体系结构相关的数据文件也可能安装在此目录中。)
--localedir打印区域支持文件的位置。(如果构建 PostgreSQL 时没有配置区域支持,这将是一个空字符串。)
--mandir打印手册页的位置。
--sharedir打印与体系结构无关的支持文件的位置。
--sysconfdir打印全系统配置文件的位置。
--pgxs打印扩展 makefile 的位置。
--configure 打印提供给 configure 脚本的选项,这些选项在配置 PostgreSQL 进行构建时使用。这可以用来重现完全相同的配置,或者查明某个二进制包是用哪些选项构建的。(但请注意,二进制包通常包含厂商特定的自定义补丁。)另请参见下面的示例。
--cc 打印 CC 变量的值,该变量在构建 PostgreSQL 时使用。它显示了所用的 C 编译器。
--cppflags 打印 CPPFLAGS 变量的值,该变量在构建 PostgreSQL 时使用。它显示了预处理阶段所需的 C 编译器开关(通常是 -I 开关)。
--cflags 打印 CFLAGS 变量的值,该变量在构建 PostgreSQL 时使用。它显示了 C 编译器开关。
--cflags_sl 打印 CFLAGS_SL 变量的值,该变量在构建 PostgreSQL 时使用。它显示了构建共享库时使用的额外 C 编译器开关。
--ldflags 打印 LDFLAGS 变量的值,该变量在构建 PostgreSQL 时使用。它显示了链接器开关。
--ldflags_ex 打印 LDFLAGS_EX 变量的值,该变量在构建 PostgreSQL 时使用。它显示了仅用于构建可执行文件的链接器开关。
--ldflags_sl 打印 LDFLAGS_SL 变量的值,该变量在构建 PostgreSQL 时使用。它显示了仅用于构建共享库的链接器开关。
--libs 打印 LIBS 变量的值,该变量在构建 PostgreSQL 时使用。它通常包含一些 -l 开关,用于链接进 PostgreSQL 的外部库。
--version打印 PostgreSQL 的版本。
-?--help显示关于 pg_config 命令行参数的帮助信息,然后退出。
如果给出了多个选项,信息将按该顺序打印,每行一项。如果没有给出任何选项,则会打印所有可用的信息,并带有标签。
选项 --docdir、--pkgincludedir、--localedir、--mandir、--sharedir、--sysconfdir、--cc、--cppflags、--cflags、--cflags_sl、--ldflags、--ldflags_sl 和 --libs 是在 PostgreSQL 8.1 中新增的。选项 --htmldir 是在 PostgreSQL 8.4 中新增的。选项 --ldflags_ex 是在 PostgreSQL 9.0 中新增的。
要重现当前 PostgreSQL 安装的构建配置,请运行以下命令:
eval ./configure `pg_config --configure`
pg_config --configure 的输出包含 shell 引号,因此带有空格的参数能够被正确地表示。因此,必须使用 eval 才能得到正确的结果。