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