【问题标题】:How to install GSSAPI Python module?如何安装 GSSAPI Python 模块?
【发布时间】:2015-09-02 23:15:57
【问题描述】:

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

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

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

【问题讨论】:

    标签: python installation ldap python-2.6 gssapi


    【解决方案1】:

    总结,给不耐烦的人

    $ 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 for gssapi 使用krb5-config 命令查找要链接的 GSSAPI 库(请参阅here)。因为我的系统是使用 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’

    构建失败,因为它无法识别库中的符号。原因是它无法获得正确的头文件。愚蠢的我,我忘了为 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
    • downvoted 因为系统文件的符号链接根本不需要,libkrb5-dev 包会安装这些文件,看我的回答,
    • 在 windows 环境下呢?
    【解决方案2】:

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

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

    【讨论】:

    • 这个包可能是固定的,因为我多年前必须这样做。通常进行手动符号链接是必要的,但只会暂时持续到上游包维护人员意识到问题并正确修复它。谢谢!
    【解决方案3】:

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

    【讨论】:

    • 你应该还需要krb5-devel
    猜你喜欢
    • 1970-01-01
    • 2018-11-17
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2019-11-03
    • 2016-09-22
    相关资源
    最近更新 更多