Сборка Python с поддержкой SSL в нестандартном месте

Мне нужно установить несколько модулей Python на RHEL, где у меня нет доступа root. По крайней мере, одному из модулей также требуется доступ к Python.h .

В этом случае я считаю, что лучше всего установить python и его зависимости в ~ / local . Обычно это просто работает, но на этот раз Python не может создать модуль SSL (подробности см. Ниже). Вот след того, что я делаю.

Итак, я загрузил исходный код python 6 и пошел:

./configure --prefix=/home/fds/rms/local
make >& make.log

Проверка журнала показывает, что модуль ssl не был скомпилирован, но не упоминается причина (нет другое появление ssl в make или configure):

Failed to find the necessary bits to build these modules:
_bsddb             _curses            _curses_panel
_hashlib           _sqlite3           _ssl   <----------

Итак, я полагаю, python вообще не находит никаких ssl-библиотек (что странно, но эй ...). Итак, я загружаю openssl-0.9.8r и

./config --prefix=/home/fds/rms/local shared
make
make install

. Теперь вернемся к Python, я ./configure и создаю снова. Это не удается, но на этот раз все по-другому:

Failed to build these modules:
_hashlib           _ssl

При более внимательном рассмотрении файла журнала обнаруживается следующее:

gcc -pthread -shared build/temp.linux-x86_64-2.6/home/fds/rms/installers/Python-2.6.6/Modules/_ssl.o -L/home/fds/rms/local/lib -L/usr/local/lib -lssl -lcrypto -o build/lib.linux-x86_64-2.6/_ssl.so
*** WARNING: renaming "_ssl" since importing it failed: libssl.so.0.9.8: cannot open shared object file: No such file or directory

Итак, теперь это ' s подбирает библиотеку, но не совсем понимает ее (файл там, где должен быть):

$ find /home/fds/rms/local -iname libssl.so.0.9.8
/home/fds/rms/local/lib/libssl.so.0.9.8

Следующее, что нужно сделать, это отследить make и посмотреть, где он ищет файл:

$ strace -f make 2>&1 | grep libssl.so.0.9.8
[pid  5584] open("/lib/libssl.so.0.9.8", O_RDONLY) = -1 ENOENT (No such file or directory)
[pid  5584] open("/usr/lib/libssl.so.0.9.8", O_RDONLY) = -1 ENOENT (No such file or directory)
[pid  5584] open("/lib64/tls/x86_64/libssl.so.0.9.8", O_RDONLY) = -1 ENOENT (No such file or directory)
[pid  5584] open("/lib64/tls/libssl.so.0.9.8", O_RDONLY) = -1 ENOENT (No such file or directory)
[pid  5584] open("/lib64/x86_64/libssl.so.0.9.8", O_RDONLY) = -1 ENOENT (No such file or   directory)
[pid  5584] open("/lib64/libssl.so.0.9.8", O_RDONLY) = -1 ENOENT (No such file or directory)
[pid  5584] open("/usr/lib64/tls/x86_64/libssl.so.0.9.8", O_RDONLY) = -1 ENOENT (No such file or directory)
[pid  5584] open("/usr/lib64/tls/libssl.so.0.9.8", O_RDONLY) = -1 ENOENT (No such file or directory)
[pid  5584] open("/usr/lib64/x86_64/libssl.so.0.9.8", O_RDONLY) = -1 ENOENT (No such file or directory)
[pid  5584] open("/usr/lib64/libssl.so.0.9.8", O_RDONLY) = -1 ENOENT (No such file or directory)
[pid  5584] write(1, "*** WARNING: renaming \"_ssl\" sin"..., 131*** WARNING: renaming "_ssl" since importing it failed: libssl.so.0.9.8: cannot open shared object file: No such file or directory
[pid  5584] open("/lib/libssl.so.0.9.8", O_RDONLY) = -1 ENOENT (No such file or directory)
[pid  5584] open("/usr/lib/libssl.so.0.9.8", O_RDONLY) = -1 ENOENT (No such file or directory)
[pid  5584] open("/lib64/libssl.so.0.9.8", O_RDONLY) = -1 ENOENT (No such file or directory)
[pid  5584] open("/usr/lib64/tls/libssl.so.0.9.8", O_RDONLY) = -1 ENOENT (No such file or directory)
[pid  5584] open("/usr/lib64/libssl.so.0.9.8", O_RDONLY) = -1 ENOENT (No such file or directory)
[pid  5584] write(1, "*** WARNING: renaming \"_hashlib\""..., 135*** WARNING: renaming "_hashlib" since importing it failed: libssl.so.0.9.8: cannot open shared object file: No such file or directory

Ммм, он ищет во всех неправильные места. Я пытаюсь дать подсказку:

CPPFLAGS="-I/home/fds/rms/local/include -I/home/fds/rms/local/include/openssl" LDFLAGS="-L/home/fds/rms/local/lib" ./configure --prefix=/home/fds/rms/local

Но ничего не меняется, и make , похоже, вообще не пытается / home / fds / rms / local / lib .

I не делал этого годами, так что, возможно, я что-то упускаю. Может ли кто-нибудь помочь с проблемой?

Заранее спасибо.

56
задан jww 19 February 2016 в 03:38
поделиться