首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >如何判断postgres是否安装了kerberos?

如何判断postgres是否安装了kerberos?
EN

Stack Overflow用户
提问于 2013-01-29 02:57:44
回答 2查看 806关注 0票数 2

我正在尝试配置postgres (8.4.13)以使用Kerberos。我似乎不能让它工作。我一直在读到的一个“问题”是postgres必须支持kerberos。我的postgres是从网上下载的rpm。我如何判断这个postgres是否支持Kerberos?有没有办法列出“已安装的组件?谢谢!

EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2013-01-29 03:59:57

pg_config可能会有所帮助,例如:

pg_config --configure

票数 6
EN

Stack Overflow用户

发布于 2013-01-29 04:09:10

一些二进制文件有类似命令的选项,可以让你看到它们是如何编译的。我不确定postgres是否会这么做。您可以使用--version (但这通常是非常简约的)和--describe-config,这将转储值,如:

代码语言:javascript
复制
Security and Authentication    STRING  FILE:/usr/local/etc/postgresql/krb5.keytab 
                 Sets the location of the Kerberos server key file

如果为postgresql安装配置了kerberos功能。

此外,许多打包系统都有一些方法来捕获传递给构建过程的编译时选项(例如,FreeBSD的pkg info -f就是这样做的)。自从我使用rpm以来已经有一段时间了,更新的版本可能有直接在二进制文件上进行这种查询的方法。在我管理的基于rpm的系统上,我会将src.rpm和.spec文件放在每个已安装应用程序的本地存储库中。这是为了遵守内部“策略”:-)并跟踪configure和OPTFLAGS设置、构建中使用的源代码等。

以下是对类似问题的回答:

https://serverfault.com/questions/36037/how-can-i-find-what-options-an-rpm-was-compiled-with

查看二进制文件链接到哪个库的通用UNIX方法是使用"ldd“,如下所示:

代码语言:javascript
复制
$~/ ldd /usr/local/bin/postgres                              
/usr/local/bin/postgres:
    libgssapi.so.3 => /usr/local/lib/libgssapi.so.3 (0x800a38000)
    libxml2.so.5 => /usr/local/lib/libxml2.so.5 (0x800b74000)
    libpam.so.5 => /usr/lib/libpam.so.5 (0x800dc4000)
    libssl.so.6 => /usr/lib/libssl.so.6 (0x800ecc000)
    libcrypto.so.6 => /lib/libcrypto.so.6 (0x80101f000)
    libm.so.5 => /lib/libm.so.5 (0x8012bf000)
    libc.so.7 => /lib/libc.so.7 (0x8013df000)
    libintl.so.9 => /usr/local/lib/libintl.so.9 (0x801621000)
    libheimntlm.so.1 => /usr/local/lib/libheimntlm.so.1 (0x80172a000)
    libkrb5.so.26 => /usr/local/lib/libkrb5.so.26 (0x801830000)
    libheimbase.so.1 => /usr/local/lib/libheimbase.so.1 (0x8019ad000)
    libhx509.so.5 => /usr/local/lib/libhx509.so.5 (0x801ab1000)
    libwind.so.0 => /usr/local/lib/libwind.so.0 (0x801bf9000)
    libsqlite3.so.8 => /usr/local/lib/libsqlite3.so.8 (0x801d21000)
    libasn1.so.8 => /usr/local/lib/libasn1.so.8 (0x801ec3000)
    libcom_err.so.2 => /usr/local/lib/libcom_err.so.2 (0x802058000)
    libiconv.so.3 => /usr/local/lib/libiconv.so.3 (0x80215b000)
    libroken.so.19 => /usr/local/lib/libroken.so.19 (0x802358000)
    libcrypt.so.5 => /lib/libcrypt.so.5 (0x802469000)
    libthr.so.3 => /lib/libthr.so.3 (0x802589000)
    libz.so.5 => /lib/libz.so.5 (0x8026a2000)

正如您在我的系统上看到的,postgresql二进制文件与libkrb5.so.26、libgssapi.so.3、libheimntlm.so.1等(这些是Heimdal库)链接在一起。

编辑:我仍然认为米伦的回应很可能是最好的、最全面的和推荐的方法,但我今天遇到了一个警告:在我的大多数系统(其中大多数是FreeBSD)上,pg_config似乎是与postgresql-client pkg一起安装的,因此可能会有与构建postgresql-server时不同的选项设置。我倾向于在客户端中构建大量功能,以便它们可以连接到一系列服务器,这些服务器通常运行在不同的机器上。带有客户机命令行shell和库的包(大多数基于RPM或Linux系统中的postgresql-devel)为连接到DB服务器的python、perl等数据库模块和库提供了功能。当您有一个在数据库后端抓取和存储数据(CRUD)的web应用程序时,客户端库通常驻留在单独的主机上。也就是说,最可能的二进制客户端/服务器/devel包是使用相同的选项集构建的;-)不管怎样,只是另一个数据点...干杯。

希望这能有所帮助。

干杯,

票数 3
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/14569130

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档