Python-ldap 3.4在alpine镜像上安装失败。

3

在尝试在阿尔派 Alpine Docker 镜像上安装最新的 Python-ldap 版本 3.4 时(我使用 python:3.9-alpine 作为基础镜像),Python-ldap 的构建将会失败,错误信息如下:

...
/usr/lib/gcc/x86_64-alpine-linux-musl/10.3.1/../../../../x86_64-alpine-linux-musl/bin/ld: cannot find -lldap_r
    collect2: error: ld returned 1 exit status
    error: command '/usr/bin/gcc' failed with exit code 
...

已安装的依赖项:

apk add --no-cache --virtual .build-deps musl-dev gcc postgresql-dev openldap-dev libffi-dev

也尝试了使用build-base等,但没有成功。

非常感谢任何想法:)

1个回答

2
当链接到OpenLDAP 2.5+时,python-ldap包存在问题。开发人员在https://github.com/python-ldap/python-ldap/issues/432https://github.com/python-ldap/python-ldap/issues/445中承认了这些问题。
已测试的解决方法是第一个问题中描述的方法:

作为一种解决方法,创建文件/usr/lib64/libldap_r.so,并将内容设置为INPUT ( libldap.so )。该方法适用于所有使用GNU ld兼容链接器的系统。

 # cat > /usr/lib64/libldap_r.so << EOF
 INPUT ( libldap.so )
 EOF

您可以以更简单的方式使用它(例如在Dockerfiles中):
echo -n "INPUT ( libldap.so )" > /usr/lib/libldap_r.so

1
解决方法很好用,非常感谢Dark_eye,祝您周末愉快! :) - krnnrt
@krnnrt 请将问题标记为已回答。谢谢,也祝您有美好的一天 ;) - Dark_eye

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