Устранить ошибку GCC при установке python-ldap на сервере Redhat Enterprise Server
Python-LDAP + Redhat = скрежет зубов
недавно я провел несколько часов, разрывая волосы (или то, что от него осталось), пытаясь установить python-ldap (через pip) на сервер Redhat Enterprise.
вот сообщение об ошибке, которое я получу (выглядит знакомым?):
Modules/constants.c:365: error: ‘LDAP_CONTROL_RELAX’ undeclared (first use in this function)
error: command 'gcc' failed with exit status 1
Если бы только там был кто-то, кто мог бы мне помочь!
2 ответов
но подождите! Я могу помочь вам, потому что я понял это после обильного количества проклятий!
Шаг 1: Убедитесь, что необходимые компоненты установлены
по словам docs в вашей системе должны быть установлены библиотеки OpenLDAP. В то время, когда я пишу требование к версии для библиотек, было >= 2.4.11
чтобы узнать, установлены ли такие библиотеки в вашей системе, выполните следующую команду: yum list installed openldap*
вот вывод из моей системы в качестве примера того, что вы можете увидеть:
PACKAGE VERSION
openldap24-libs.i386 2.4.23-5.el5
openldap24-libs.x86_64 2.4.23-5.el5
openldap24-libs-devel.i386 2.4.23-5.el5
openldap24-libs-devel.x86_64 2.4.23-5.el5
Итак, в моем случае у меня уже были установлены библиотеки. если вы не просто запустите:
sudo yum install openldap24-libs-devel
sudo yum install openldap24-libs
Шаг 2: где были установлены эти пакеты?
если пакеты уже установлены, а pip все еще не работает,возможно, установка.cfg script ищет в неправильном месте необходимые файлы библиотеки. Итак, давайте найдем где они существуют в нашей системе.
этого:
rpm -ql openldap24-libs
rpm -ql openldap24-libs-devel
и вы должны получить что-то вроде этого (я сократил это, чтобы мы могли видеть каталоги, вовлеченные более легко).
rpm -ql openldap24-libs
/usr/lib64/...
/usr/lib/...
rpm -ql openldap24-libs-devel
/usr/include/openldap24/...
/usr/lib/openldap24/...
/usr/lib64/openldap24/...
Шаг 3: Проверьте настройку Pip.cfg файл для python-ldap
- когда команда pip install терпит неудачу, она оставляет после себя
build
каталог внутри базового каталога интерпретатора python (там же, где вы найдете /bin, / include, / lib и /человек. - внутри
build
каталог вы должны найти ' python-ldap / setup.cfg'и. - открыть файл в вашем любимом редакторе.
вы должны увидеть это в верхней части файла:
[_ldap]
library_dirs = /opt/openldap-RE24/lib /usr/lib
include_dirs = /opt/openldap-RE24/include /usr/include/sasl /usr/include
очевидно, это неправильно. добавьте каталоги, обнаруженные на Шаге 2 перед каталоги, в настоящее время включены, так что вы в конечном итоге с чем-то вроде:
[_ldap]
library_dirs = /usr/lib64/openldap24 /usr/lib/openldap24 /usr/lib64 /opt/openldap-RE24/lib /usr/lib
include_dirs = /usr/include/openldap24 /opt/openldap-RE24/include /usr/include/sasl /usr/include
Шаг 4: Запустите Установка и прибыль!
после сохранения файла, вы можете просто запустить pip install python-ldap
снова. Процесс установки будет смотреть на вашу установку обновления.cfg и должен установить без каких-либо дополнительных проблем.
альтернатива шагу 3 в ответ eikonomega:
$ export CPATH=/usr/include/openldap24/
$ export LIBRARY_PATH=/usr/lib64/openldap24/
затем:
$ pip install python-ldap
отсутствие треснуть-раскройте установку.cfg так!