[Сообщения] OpenSSL 1.1.0 скомпилирован с OpenSSL 1.0.2 проблемами зависимых совместимости

OpenSSL 1.1.0 и 1.0.2 OpenSSL проблем совместимости зависит от компилятора

----------------
Предупреждение: Данная статья является оригинальной статьей CSDN блоггеры «Мехико Zhizuo» и следовать CC 4.0 BY - SA соглашение об авторских прав, Приводимых, пожалуйста , приложите ссылку первоисточника и это утверждение.
Оригинальная ссылка: HTTPS: // blog.csdn.net/antony1776/article/details/82801549

 


Описание проблемы
сервера: Сердце Дракона / Deepin

Linux Deepin 3.10.108-Deepin + # 3 SMP PREEMPT Вт 23 января 16:54:44 CST 2018 MIPS64 GNU / Linux

Сервер поставляется с OpenSSL версии:

#> Версия OpenSSL -
OpenSSL 1.1 .0e 16 : Фев две тысячи семнадцать
построенная на: воспроизводимую сборке, дата неуточненного
Платформа: Debian -mips64el

 


Рубин версия 2.0.0 была использована в системе, учитывая при установке пума-2.11.1:

mini_ssl.c: ошибка:

2 причины
OpenSSL 1.1 по сравнению с OpenSSL 1.0.2, происходит изменение больше, в результате чего прикладного программного обеспечения не может поддерживать обе версии одновременно без изменения исходного кода.

Для получения дополнительной информации см:

https: // wiki.openssl.org/index.php/OpenSSL_1.1.0_Changes

 

3 залатать
этот случай, есть три варианта лечения:

Openssl версии Переустановка низкий: влиять на другие прикладные системы, не представляется возможным
обновить рубин: требует существенной модификации для текущего приложения, это не представляется возможным
установить исправление совместимость
проблему во время компиляции, в основном из - за структуры данных и API существует значительные изменения, Она может быть решена с помощью пластыря.

Скачать патч: OpenSSL-compat.tar.gz

https: // wiki.openssl.org/images/e/ed/Openssl-compat.tar.gz

 

битуминозных пакеты распакованные в двух файлах: libcrypto-compat.h, libcrypto-compat.c

После извлечения файлов, которые будут размещены в проекте компиляции, и добавить ссылку libcrypto-compat.h в mini_ssl.c в.

Затем успешно компилировать.

Пример 4.
Например, процесс ПУМА-2.11.1 патч, следующим образом :

1 , скачать puma- 2,11 . 1 источник пакета GEM: GitHub

2 , скачать патч: OpenSSL-compat.tar.gz, то libcrypto-compat.h распакованы, libcrypto-compat.c файл, скопировать в puma- 2.11 . 1. Исходный пакет puma- 2.11 . 1. / EXT / puma_http11 путь под;

3 , откройте файл puma- 2.11 . 1. /Ext/puma_http11/mini_ssl.c, добавить libcrypto- ссылка compat.h следующим образом :

4 , в puma- 2.11 . . 1 следующий / внутр / puma_http11 каталог:

 

рубин extconf.rb
макияж

Будет составлен пума / puma_http11.so

рекомендация

отwww.cnblogs.com/jinanxiaolaohu/p/12654562.html