如何安装GSSAPI Python模块?

21

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

找不到主GSSAPI共享库。请尝试设置GSSAPI_MAIN_LIB或将ENABLE_SUPPORT_DETECTION设置为“false”

我需要在Python 2.6上使其能够用于LDAP3身份验证。

3个回答

24

摘要,给急于求成的人

$ 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

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

gssapisetup.py使用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正在查找用于链接的gssapi库,它在/usr/lib中。在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”

编译失败,因为库中的一个符号无法识别。原因是没有正确获取头文件。我忘记包含krb5头文件的-dev软件包了。请使用apt-get来修复这个问题:

$ sudo apt-get install libkrb5-dev

最后 - 安装gssapi

现在我们应该已经准备就绪。

$ sudo pip install gssapi

如果您想整理一下,可以删除指向 krb5-config.mit 命令的符号链接:

$ sudo rm /usr/bin/krb5-config

另外,在Debian系统上安装pip,请执行以下命令:sudo apt-get install python-pip,然后执行sudo pip install --upgrade pip virtualenv virtualenvwrapper - Dave
1
因为根本不需要将系统文件进行符号链接,libkrb5-dev软件包会安装这些文件,请参见我的答案。 - Jens Timmerman
在Windows环境下会怎样? - Vincenzo
在我的情况下,我需要将符号链接指向/usr/lib/mit/bin/krb5-config - wisbucky

22

sudo apt install libkrb5-dev实际上会安装/usr/bin/krb5-config和/usr/lib/libgssapi_krb5.so,因此不需要进行任何符号链接,只需安装libkrb5-dev即可。


这个软件包可能已经修复了,因为我很多年前就不得不这样做了。手动创建符号链接通常是必要的恶,但只有在上游软件包维护者意识到问题并适当地解决它之前才会持续暂时。 - Dave

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

3
你还需要安装 krb5-devel - Sergio Oliveira

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接