Насколько я вижу, у вас есть следующие опции:
pip
с аргументом --no-dependencies
и надеюсь, что он просто сработает. pip install wechatpy --no-dependencies
(или как называется пакет, я не знаком с ним), например. Это игнорирует зависимости при установке. Возможно, требования устарели, и это позволит вам продолжить. Для этого вам, скорее всего, нужно выполнить требование requests>=2.9.1
, поэтому вы должны установить python-social-auth
обычным образом, а затем попробовать другой пакет без зависимостей. requests
). А затем импортируйте локальную версию пакетов. Не забудьте убрать требование из requirements.txt
вашего проекта в этом случае, чтобы другие люди, работающие над / использующие ваш проект, не сталкивались с той же проблемой, и включите локальную версию как часть проекта (отслеживайте ее в Git). Проверьте лицензию пакетов, которые вы модифицируете, чтобы увидеть, разрешено ли вам изменять и распространять их. (Необязательно: Сделайте запрос на извлечение пакетов на Github с вашими изменениями, чтобы другие люди могли воспользоваться ими) Проблема с ответом SourceRebels в том, что slapcat(8)
не гарантирует, что данные упорядочены для ldapadd(1)
/ldapmodify(1)
. Из man-страницы :
The LDIF generated by this tool is suitable for use with slapadd(8). As the entries are in database order, not superior first order, they cannot be loaded with ldapadd(1) without first being reordered.
Плюс использование инструмента, который использует файлы backend для дампа базы данных, а затем использует инструмент, который загружает ldif через протокол ldap, не очень последовательно.
Я бы предложил использовать комбинацию из slapcat(8)
/slapadd(8)
ИЛИ ldapsearch(1)
/ldapmodify(1)
. Я бы предпочел последний вариант, так как он не требует доступа к серверу ldap через shell или перемещения файлов.
Например, сбросить базу данных с основного сервера под dc=master,dc=com и загрузить ее на резервный сервер
$ ldapsearch -Wx -D "cn=admin_master,dc=master,dc=com" -b "dc=master,dc=com" -H ldap://my.master.host -LLL > ldap_dump-20100525-1.ldif $ ldapadd -Wx -D "cn=admin_backup,dc=backup,dc=com" -H ldap://my.backup.host -f ldap_dump-20100525-1.ldif
Флаг -W выше запрашивает пароль ldap admin_master, но поскольку мы перенаправляем вывод в файл, вы не увидите запроса - только пустую строку. Наберите свой пароль ldap admin_master и все заработает. Перед запуском ldapadd первую строку выходного файла нужно будет удалить (Enter LDAP Password:).
Последняя подсказка, ldapadd(1)
является жесткой ссылкой на ldapmodify(1)
с включенным флагом -a
(add).
Некоторые встречи:
Сохраните ваши персонализированные определения схем и классов объектов на вашем новом сервере. Вы можете найти ваши включенные файлы в slapd.conf, чтобы получить его, например (это часть моего slapd.conf):
include /etc/ldap/schema/core.schema
Include ваши персонализированные схемы и объектные классы в вашей новой установке openLDAP.
Используйте команду slapcat для экспорта полного дерева LDAP в один / различные файлы ldif .
Используйте ldapadd для импорта файлов ldif в вашу новую установку LDAP.
Я предпочитаю копировать базу данных по протоколу:
прежде всего убедитесь, что у вас одинаковые схемы на обоих серверах.
-дамп базы данных с помощью ldapsearch:
ldapsearch -LLL -Wx -D "cn = admin, dc = domain" -b "dc = domain"> domain.ldif
- и импортировать его на новый сервер:
ldapmodify -Wx -D "cn = admin, dc = domain" -a -f domain.ldif
в oneline:
ldapsearch -LLL -Wx -D "cn = admin, dc = domain" -b "dc = domain" | ldapmodify -w pass -x -D "cn = admin, dc = domain" -a
Используя команды bin / ldap *, вы общаетесь напрямую с сервером, а команды bin / slap * вы имеете дело с серверной частью файлы
ldapsearch и ldapadd не обязательно являются лучшими инструментами для клонирования вашей базы данных LDAP. slapcat и slapadd - гораздо лучшие варианты.
Экспортируйте вашу БД с помощью slapcat:
slapcat > ldif
Импортируйте БД с помощью slapadd (убедитесь, что сервер LDAP остановлен):
slapadd -l ldif