15

我正在尝试通过 pip 安装 GSSAPI 模块,但收到此错误,我不知道如何解决。

找不到主要的 GSSAPI 共享库。请尝试自行设置 GSSAPI_MAIN_LIB 或将 ENABLE_SUPPORT_DETECTION 设置为“假”

我需要这个在 Python 2.6 上工作以进行 LDAP3 身份验证。

4

3 回答 3

17

总结,对于不耐烦的人

$ sudo ln -s /usr/bin/krb5-config.mit /usr/bin/krb5-config
$ sudo ln -s /usr/lib/x86_64-linux-gnu/libgssapi_krb5.so.2 /usr/lib/libgssapi_krb5.so
$ sudo apt-get install python-pip libkrb5-dev
$ sudo pip install gssapi

现在细节...

我有一个使用 Heimdal Kerberos 的 Debian 系统。我将带您完成我必须做的事情才能让它为我工作。希望这也可以帮助其他人。


问题 1 - krb5-config:找不到命令

setup.py对于 gssapi,使用该krb5-config命令查找要链接的 GSSAPI 库(请参见此处)。因为我的系统是使用 Heimdal 而不是 MIT Kerberos 安装的,所以可执行命令已重命名为krb5-config.mit所以setup.py错过了它。

$ krb5-config --libs gssapi  # doesn't work
bash: krb5-config: command not found

我创建了一个符号链接以使其适用于安装:

$ sudo ln -s /usr/bin/krb5-config.mit /usr/bin/krb5-config
$ krb5-config --libs gssapi  # does work
-L/usr/lib/x86_64-linux-gnu/mit-krb5 -Wl,-z,relro -lgssapi_krb5 -lkrb5 -lk5crypto -lcom_err

问题 2 - libgssapi_krb5.so:无法打开共享对象文件:没有这样的文件或目录

setup.py正在寻找/usr/lib要链接的 gssapi 库。在 Debian Jesse 中,大多数库现在保存在/usr/lib/x86_64-linux-gnu. 同样,符号链接可以解决这个问题:

$ sudo ln -s /usr/lib/x86_64-linux-gnu/libgssapi_krb5.so.2 /usr/lib/libgssapi_krb5.so

问题 3 - 错误:未知类型名称 'gss_key_value_set_desc'</h2>

构建失败,因为它无法识别库中的符号。原因是它无法获得正确的头文件。愚蠢的我,我忘了包含-devkrb5 标头的包。使用 apt-get 修复此问题:

$ sudo apt-get install libkrb5-dev

最后 - 安装 gssapi

现在我们应该都准备好了。

$ sudo pip install gssapi

如果要整理,可以删除krb5-config.mit命令的符号链接:

$ sudo rm /usr/bin/krb5-config
于 2015-06-19T06:38:36.770 回答
12

sudo apt install libkrb5-dev 实际安装 /usr/bin/krb5-config 和 /usr/lib/libgssapi_krb5.so

所以不需要任何符号链接,只需安装 libkrb5-dev 就可以了。

于 2018-05-18T11:34:07.213 回答
0

对我来说,在 Centos 中安装软件包“krb5-libs”后问题得到了解决。基本上我们需要有 libgssapi_krb5.so 文件来安装 gssapi。

于 2018-10-04T21:03:19.537 回答