Сборка OpenSSL для компиляции переносимой версии Python - PullRequest
0 голосов
/ 01 февраля 2011

Я пытаюсь собрать Python из исходного кода и мне нужно включить модуль SSL, чтобы мой веб-скребок работал с ним.

Я столкнулся с проблемой отсутствия SSL, поэтому скачал и собрал OpenSSL из исходного кода. Проблема в том, что мне нужно установить библиотеки разработки вместе с OpenSSL, чтобы Python корректно запускал параметр -lssl при запуске make. Кажется, я не могу найти никакой документации о том, как собрать OpenSSL с помощью библиотек разработки, хотя я уверен, что это должно быть что-то простое, что я просто скучаю.

Я должен сделать это из источника; без менеджеров пакетов. У меня есть свои причины.

EDIT: Я изменил некоторые параметры конфигурации python, чтобы попытаться исправить проблему, и теперь я получаю сообщение об ошибке компиляции:

gcc -pthread -Xlinker -export-dynamic -o python \ Modules/python.o \ libpython2.7.a -lpthread -ldl -lutil -L/home/[username]/openssl-src -lssl -lcrypto -lm<br /> libpython2.7.a(posixmodule.o)(.text+0x4016): In function <code>posix_tmpnam':<br /> ./Modules/posixmodule.c:7346: warning: the use of tmpnam_r 'опасно, лучше использовать mkstemp' libpython2.7.a(posixmodule.o)(.text+0x3f76): In function posix_tempnam': ./Modules/posixmodule.c:7301: предупреждение: использование tempnam' is dangerous, better use mkstemp '
./python: ошибка при загрузке общих библиотек: libssl.so.1.0.0: не удается открыть файл общих объектов: нет такого файла или каталога
make: * [sharedmods] Ошибка 127

"Нет такого файла или каталога" создается при поиске файла, который существует в каталоге /home/[username]/openssl-src.

Ответы [ 3 ]

1 голос
/ 08 февраля 2011

Этот ответ НЕ ТОЧНО отвечает на мой вопрос, но я узнал, что мне нужно было знать, поэтому я опубликую его здесь. Мне пришлось изменить местоположение файлов SSL, которые он искал, на /usr, а не /usr/local. RedHat по умолчанию имеет все общие библиотеки в /usr/lib, а не /usr/local/lib, что и было по умолчанию.

1 голос
/ 18 ноября 2011

в оболочке Bourne (/ bin / sh или / bin / bash):

$ LD_LIBRARY_PATH=/usr/local/lib
$ export LD_LIBRARY_PATH
$ make

в C-оболочке (/ bin / csh или / bin / tcsh):

% setenv LD_LIBRARY_PATH /usr/local/lib
% make
1 голос
/ 01 февраля 2011

Стандартная сборка OpenSSL должна устанавливать соответствующие заголовочные файлы и библиотеки, используя make install, просто убедитесь, что вы указали правильный префикс для скрипта конфигурирования (например, ./configure --prefix=/usr).

Если это не удастся,пожалуйста, опубликуйте точную ошибку, которую показывает gcc.

Кстати, пожалуйста, подумайте об использовании автоматического инструмента, такого как buildout для сборки Python.Я думаю, что стандартные рецепты заботятся о поддержке SSL (возможно, даже загружая и компилируя OpenSSL), хотя я не уверен в этом.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...