Мне нужно установить несколько модулей 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
Так что теперь она подбирает библиотеку, но не совсем понимает ее правильно(файл там, где должен быть):
$ 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
.
Я не делал этого годами,так что, может быть, я что-то упускаю.Кто-нибудь может помочь с проблемой?
Заранее спасибо.