pg_config

名称

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

打印扩展makefiles文件的位置。

--configure

打印配置和编译PostgreSQL时给configure脚本传递的选项, 这可以用于复制相同配置, 或者找出二进制包是用哪些选项编译的。 不过请注意二进制包通常包含供应商提供的补丁。又见下面的例子。

--cc

打印用于编译PostgreSQLCC变量的数值。 这个选项显示使用的C编译器。

--cppflags

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

--cflags

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

--cflags_sl

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

--ldflags

打印编译PostgreSQL时使用的LDFLAGS变量的数值。 它显示了链接器的开关。

--ldflags_ex

输出用于创建PostgreSQLLDFLAGS_EX变量的值。 这显示用于构建可执行文件的链接器开关。

--ldflags_sl

打印编译PostgreSQL时使用的LDFLAGS_SL变量的数值。 它显示了用于编译共享库的链接器的开关。

--libs

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

--version

打印PostgreSQL的版本。

-?
--help

显示关于pg_config命令行参数的帮助文件,并且退出。

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

注意

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

选项--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里。

在尚未出现pg_configPostgreSQL 7.1之前并不存在 这样的寻找相等配置信息的方法。

例子

要重用当前PostgreSQL安装的配置进行编译,运行下面的命令:

eval ./configure `pg_config --configure`

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