pg_config

Name

pg_config -- 检索已安装版本的 PostgreSQL 的信息

Synopsis

pg_config [option...]

描述

pg_config 工具打印当前安装的 PostgreSQL版本配置参数。 它可以用于那些希望与 PostgreSQL 相联接的软件包,这样可以通过它找到相对应的头文件和库。

选项

要使用 pg_config,使用下面的一个或者多个选项:

--bindir

打印用户可执行文件的路径。比如,可以用这个找 psql 程序。 通常这也是 pg_config 程序存在的路径。

--docdir

打印文档文件的位置。(如果在制作 PostgreSQL 的时候声明了 --without-docdir 那么这个就是空字串。)

--includedir

打印 C 头文件的路径。

--pkgincludedir

打印其它 C 头文件的位置。

--includedir-server

打印那些做服务器编程时使用的 C 头文件的位置。

--libdir

打印目标代码库的路径。

--pkglibdir

打印动态装载的模块的位置,或者服务器在哪里寻找他们。 (其它体系相关的数据文件可能也放在这个目录里。)

--localedir

打印区域支持文件的位置。(如果在制作 PostgreSQL 的时候没有配置区域支持, 那么这个就是空字串。)

--mandir

打印手册页的位置。

--sharedir

打印体系无关的支持文件的位置。

--sysconfdir

打印系统内配置为鉴的位置。

--pgxs

打印扩展的制作文件的位置。

--configure

打印我们配置和制作 PostgreSQL 时给 configure 脚本用的选项, 或者找出二进制包是用哪些选项制作的。(不过请注意二进制包通常包含供应商提供的补丁。) 又见下面的例子。

--cc

打印用于制作 PostgreSQL 的 CC 宏的数值。 这个选项显示使用的 C 编译器。

--cppflags

打印用于制作 PostgreSQL 的 CPPFLAGS 宏的数值。 这个选项显示在预处理的时候所需要的 C 编译器开关(通常是 -I 开关)。

--cflags

打印制作 PostgreSQL 时使用的 CFLAGS 宏的数值。 这个选项显示 C 编译器开关。

--cflags_sl

打印制作 PostgreSQL 时使用的 CFLAGS_SL 宏的数值。 这个选项显示了制作共享库的额外的 C 编译器开关。

--ldflags

打印制作 PostgreSQL 时使用的 LDFLAGS 宏的数值。 它显示了链接器的开关。

--ldflags_sl

打印制作 PostgreSQL 时使用的 LDFLAGS_SL 宏的数值。 它显示了用于制作共享库的链接器的开关。

--libs

打印制作 PostgreSQL 时使用的 LIBS 宏的数值。 其内容通常包含连接到 PostgreSQL 的外部库的 -l 开关。

--version

打印 PostgreSQL 的版本。

如果给出多于一个选项,那么信息以该顺序打印,每行一条。 如果没有给出选项,则打印所有可获得的信息,连着标签一起打印。

注意

选项 --includedir-server 是在PostgreSQL7.2 里新出现的。在以前的版本里,服务器的包含文件是和客户端头文件放在同样的位置的, 可以用 --includedir 查询。 要让你的包同时包含两种头文件,那么先用新选项进行探测,并且测试退出状态,看看它是否成功。

选项 --docdir, --pkgincludedir, --localedir, --mandir, --sharedir, --sysconfdir, --cc, --cppflags, --cflags, --cflags_sl, --ldflags, --ldflags_sl, 和 --libsPostgreSQL 8.1 里新加的。

在早于PostgreSQL7.1 的版本里,在 pg_config 出现之前,并不存在这样的寻找配置信息的方法。

例子

要重现当前 PostgreSQL 的配置进行制作,运行下面的命令:

eval ./configure `pg_config --configure`

pg_config --configure 的输出包含 shell 的单引号, 这样带空格的参数就可以正确表现出来。因此,要想获得合适的结果,就要使用 eval

历史

pg_config 工具最早出现在PostgreSQL7.1。